" defineCall不是函数"。使用Node.JS的sequelize

时间:2017-06-05 19:27:08

标签: node.js sequelize.js

我学习如何将Sequelize用于Node.JS项目,我正在研究这些模型:

index.js

var Sequelize = require('sequelize');
const sequelize = new Sequelize('mysql://bf3a13a7df5b2f:e2707ede@us-cdbr-iron-east-03.cleardb.net/heroku_6bdb0d8ad6c6a50?reconnect=true');

// load models
var models = [
  'student',
   ];

models.forEach(function(model) {
  module.exports[model] = sequelize.import(__dirname + '/' + model);
});

// export connection
module.exports.student= student;
module.exports.sequelize = sequelize;

student.js

var sequelize = require('./dbConnection');
var Sequelize = require('sequelize');

const student = sequelize.define('student', {
  id: {
    type: Sequelize.STRING,
    primaryKey: true
  },
  name: {
    type: Sequelize.STRING
  },
  middleName: {
    type: Sequelize.STRING
  },
  lastName: {
    type: Sequelize.STRING
  },
  dob: {
    type: Sequelize.DATE
  },

  //student.sync({force: true});
});

module.exports = student;

这是我从命令行收到的错误消息:

C:\Users\adria\OneDrive\Documentos\GitHub\ScholarMean1\node_modules\sequelize\lib\sequelize.js:691
    this.importCache[path] = defineCall(this, DataTypes);
                             ^

TypeError: defineCall is not a function

如果模型在index.js中,我设法使它工作,但因为我想为每个模型创建一个文件,我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

我刚刚看到类似的问题,问题是models文件夹中实际上不是数据库模型的文件。确保您的models文件夹仅包含数据库的模型。希望这有帮助!

相关问题