sequelize .create不是函数错误

我得到Unhandled rejection TypeError: feed.create is not a function错误,我不明白为什么会发生。 这里有什么问题?

这是我的代码。 由于我无法在routes / index.js中访问feedvariables,因此我可能不会在这里做一些非常基础的工作。

如果我添加module.exports = feed; 到我的模型文件,我可以达到它,但我有多个模型,所以如果我添加额外的模型饲料,他们覆盖它。

db.js

 var Sequelize = require('sequelize'); var sequelize = new Sequelize('mydatabase', 'root', 'root', { host: 'localhost', dialect: 'mysql', port: 8889, pool: { max: 5, min: 0, idle: 10000 }, define: { timestamps: false } }); var db = {}; db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db; 

models.js

 var db = require('./db'), sequelize = db.sequelize, Sequelize = db.Sequelize; var feed = sequelize.define('feeds', { subscriber_id: Sequelize.INTEGER, activity_id: Sequelize.INTEGER }, { tableName: 'feeds', freezeTableName: true }); 

路线/ index.js

 var express = require('express'); var router = express.Router(); var models = require('../models'); router.get('/addfeed', function(req,res) { sequelize.sync().then(function () { return feed.create({ subscriber_id: 5008, activity_id : 116 }); }).then(function (jane) { res.sendStatus(jane); }); }); 

你不能从一个文件到达一个variables,只需要在另一个文件中。 您需要定义一个对象字面值来将所有variables保存在一个位置,并将其分配给module.exports ,或者您需要分别从不同的文件中导入它们。

在你的情况下,我会创build单独的文件来保存表模式,然后通过sequelize.import在一个文件下导入,然后需要该文件。

喜欢这个:

车型/ index.js:

 var sequelize = new Sequelize('DBNAME', 'root', 'root', { host: "localhost", dialect: 'sqlite', pool:{ max: 5, min: 0, idle: 10000 }, storage: "SOME_DB_PATH" }); // load models var models = [ 'Users', ]; models.forEach(function(model) { module.exports[model] = sequelize.import(__dirname + '/' + model); }); 

车型/ Users.js

 var Sequelize = require("sequelize"); module.exports=function(sequelize, DataTypes){ return Users = sequelize.define("Users", { id: { type: DataTypes.INTEGER, field: "id", autoIncrement: !0, primaryKey: !0 }, firstName: { type: DataTypes.STRING, field: "first_name" }, lastName: { type: DataTypes.STRING, field: "last_name" }, }, { freezeTableName: true, // Model tableName will be the same as the model name classMethods:{ } }, instanceMethods:{ } } }); }; 

然后像这样导入每个模型:

var Users = require("MODELS_FOLDER_PATH").Users;

希望这可以帮助。