Node.js sequelize.create不是函数错误
我收到Node.js sequelize.create不是函数错误,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,我收到未处理的拒绝类型错误:feed.create不是一个函数错误,我无法理解为什么会发生。这里有什么问题 这是我的密码。我可能没有在这里做一些非常基本的事情,因为我无法在routes/index.js中访问提要变量 如果我添加module.exports=feed;对于我的模型文件,我可以访问它,但我有多个模型,因此如果我在提要下面添加其他模型,它们会覆盖它 db.js models.js var db = require('./db'), sequelize = db.sequeli
未处理的拒绝类型错误:feed.create不是一个函数
错误,我无法理解为什么会发生。这里有什么问题
这是我的密码。我可能没有在这里做一些非常基本的事情,因为我无法在routes/index.js中访问提要变量
如果我添加module.exports=feed;对于我的模型文件,我可以访问它,但我有多个模型,因此如果我在提要下面添加其他模型,它们会覆盖它
db.js
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
});
routes/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);
});
});
您无法通过仅在另一个文件中要求变量来访问文件中的变量。您需要定义一个对象文字,将所有变量保存在一个位置,并将其分配给
模块。导出
,或者需要分别从不同的文件导入它们
在您的情况下,我将创建单独的文件来保存表架构,然后通过sequelize导入它们。在一个文件下导入,然后需要该文件
像这样:
models/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);
});
models/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\u FOLDER\u PATH”)。用户代码>
希望这能有所帮助。您可能想查看下面链接上给出的答案。为了解决同一问题,我可以使用const User=sequelize.import(“../models/users”)代码>,而不是从“../models/users”导入用户代码>
只要使用
const{User}=require(../models”);
我遵循了此操作,出现错误无法读取未定义的属性“all”
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:{
}
}
});
};