javascript - DefineCall 不是函数,sequelize 错误

标签 javascript node.js database express sequelize.js

我一直在尝试找出如何修复我的index.js 文件生成的以下错误。我正在使用 Node、Express 和sequelize。

/app/node_modules/sequelize/lib/sequelize.js:691
server_1       |     this.importCache[path] = defineCall(this, DataTypes);
server_1       |                              ^
server_1       | 
server_1       | TypeError: defineCall is not a function

据我了解,该错误是因为我将不是 Sequelize 模型的内容导入到我的 index.js 文件中而生成的(请参阅下面的 index.js 代码)。但我就是找不到问题出在哪里。下面是代码。任何帮助将非常感激!

预订模式代码:

var Sequelize = require('sequelize');
var config = require('../config');
var db = require('../services/database');
// 1: The model schema.
var modelDefinition = {
    name: {
        type: Sequelize.STRING
    }
};
// 2: Define the User model.
var BookingModel = db.define('booking', modelDefinition);
// DB relations
BookingModel.associate = (models) => {
   BookingModel.hasMany(models.BookingModel, {});
 };
module.exports = BookingModel;

Index.js 文件的重要部分:

fs
  .readdirSync(__dirname)
  .filter(function(file) {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(function(file) {
    var model = sequelize.import(path.join(__dirname, file));
    db[model.name] = model;
  });

最佳答案

Sequelize 模型文件必须采用以下格式,

module.exports = function(connection, Sequelize){
  var table = connection.define('table', {
    id : Sequelize.INTEGER,
  });
  return table;
}

在您指定的模型中,它会导出模型定义,这就是错误的原因。 Sequelize 期望每个模型导出一个返回表定义的函数。

关于javascript - DefineCall 不是函数,sequelize 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49576212/

相关文章:

node.js - 如何在 Mongoose 子文档中配置默认​​枚举值?

node.js - ParseServer 上的 serverURL 和 publicServerURL 之间的区别

javascript - 第二个请求的 Node -mysql 连接错误

MySQL导入-如果存在行,如何忽略删除表?

java - 检查用户名是否存在

javascript - 输入重置 react

sql-server - 从 DGV 添加列到 SQL Server 的问题

php - 如何在数据库中存储 session 变量

javascript - 有没有办法从 Javascript 中的引用重写构造函数?

javascript - 无法使用 Ajax 调用返回的 json 数据创建选择元素