express应用程序中的Sequelize模型类引用错误
sq.js: app.js:express应用程序中的Sequelize模型类引用错误,express,sequelize.js,Express,Sequelize.js,sq.js: app.js: var Sequelize = require('sequelize'); var sequelize = new Sequelize('postgres://chandan:duvarko315@localhost:5432/diary'); var User = sequelize.define('user', { username: { type: Sequelize.STRING, field: 'username' // Will r
var Sequelize = require('sequelize');
var sequelize = new Sequelize('postgres://chandan:duvarko315@localhost:5432/diary');
var User = sequelize.define('user', {
username: {
type: Sequelize.STRING,
field: 'username' // Will result in an attribute that is firstName when user facing but first_name in the database
},
password: {
type: Sequelize.STRING
}
},{
timestamps: false,
});
User.sync({force: true}).then(function () {
// Table created
});
module.exports = User;
我得到了错误:ReferenceError:User未定义,因为您在app.js中将用户模型声明为
seq
。将您的声明更改为:
var seq = require('./routes/sq');
passport.use(new passportLocal.Strategy(function(username,password, done){
User.findOne({username: username}, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null,{ id:username, name:username});
});
}));
变量
User
仅存在于sq.jsIts中,因为您已在app.js中将用户模型声明为seq
。将您的声明更改为:
var seq = require('./routes/sq');
passport.use(new passportLocal.Strategy(function(username,password, done){
User.findOne({username: username}, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null,{ id:username, name:username});
});
}));
变量
User
仅存在于sq.jsYep中,该变量起作用了……但现在查询没有执行……它在控制台中显示为……。执行(默认):从“用户”中选择“id”、“用户名”、“密码”作为“用户”限制1;是的,它工作了……但是现在查询没有执行……它在控制台中显示为……正在执行(默认):从“用户”中选择“id”、“用户名”、“密码”作为“用户”限制1;