2016-08-04 76 views
2

定义模型时,我有一个续集DataTypes.INTEGER问题。我在电子书中以“使用Node.js构建API”为例。我是一个试图抓住快递和续集的新手。任何帮助非常感谢。谢谢。sequelize DataTypes TypeError:无法读取未定义的属性'INTEGER'

错误的详细信息:

> /home/xxx/workspace/ntask-api/models/tasks.js:9 
>  type: DataTypes.INTEGER, 
>     ^TypeError: Cannot read property 'INTEGER' of undefined 
>  at Function.module.exports (/home/xxx/workspace/ntask-api/models/tasks.js:9:21) 
>  at Consign.into (/home/xxx/workspace/ntask-api/node_modules/consign/lib/consign.js:239:17) 
>  at Object.<anonymous> (/home/xxx/workspace/ntask-api/index.js:13:5) 
>  at Module._compile (module.js:456:26) 
>  at Object.Module._extensions..js (module.js:474:10) 
>  at Module.load (module.js:356:32) 
>  at Function.Module._load (module.js:312:12) 
>  at Function.Module.runMain (module.js:497:10) 
>  at startup (node.js:119:16) 
>  at node.js:902:3 

下面的代码样本中

/models/tasks.js

> module.exports = function(sequelize, DataTypes){ 
>  //console.log(DataTypes.INTEGER); 
>  const Tasks = sequelize.define("Tasks", {  id: { 
>  type: DataTypes.INTEGER, 
>  primaryKey: true, 
>  autoIncrement: true  }, title: { 
>  type: DataTypes.STRING, 
>  allowNull: false, 
>  validate: {   notEmpty: true 
>  } }, done: { 
>  type: DataTypes.BOOLEAN, 
>  allowNull: false, 
>  defaultValue: false  } 
>  }, 
>  {  classMethods:{ 
>  associate: function(models){  Tasks.belongsTo(models.Users, { 
>   onDelete: "CASCADE", 
>   foreignKey: {   allowNull: false 
>   }  }); 
>  } } 
>  }); 
>  return Tasks; }; 

我也加入这模型/任务上试图从TypeError: object is not a function when defining models in NodeJs using Sequelize建议.js文件,但同样的错误。

var DataTypes = require('sequelize/lib/data-types');

回答

3

sequelize的变化很多,所以stackoverflow的答案可能不正确。

如果检查出sequelize DOC(link

他们开始使用Sequelize.XXXX代替

这里是从文档

var Project = sequelize.define('project', { 
    title: Sequelize.STRING, 
    description: Sequelize.TEXT 
}) 

var Task = sequelize.define('task', { 
    title: Sequelize.STRING, 
    description: Sequelize.TEXT, 
    deadline: Sequelize.DATE 
}) 

因此,例如,你有2种方式来实现那

  1. require('sequelize')在每模型文件
  2. require('sequelize')index文件,并把它传递给每一个模型文件
+0

感谢@hiEven,会尝试一下。 – luhfluh

+0

它像一个魅力工作! ...只是坚持1,但会在稍后尝试2。再次感谢。 – luhfluh

相关问题