在Express应用程序中Sequelize Model类引用错误

时间:2017-01-25 11:37:38

标签: express sequelize.js

sq.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 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;

app.js:

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});
    });
}));

我收到错误:ReferenceError:未定义用户

1 个答案:

答案 0 :(得分:3)

因为您已在app.js中将用户模型声明为seq。将您的声明更改为:

var User = require('./routes/sq');

变量User仅存在于sq.js

相关问题