2017-01-25 32 views
0

sq.js:Sequelize Model类引用错误

var Sequelize = require('sequelize'); 
var sequelize = new Sequelize('postgres://chandan:[email protected]: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:用户没有定义

回答

3

其因为你已经在app.js中声明了用户模型seq。你的声明更改为:

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

变量User只住在sq.js

+0

没错奏效......但现在的查询不执行......它显示在控制台as .......执行(默认):SELECT“id”,“username”,“password”FROM“users”AS“user”LIMIT 1; –