所以我使用Express和passport来创建一个应用程序。到目前为止一直很好,但我遇到的问题是当我尝试在我的mongo数据库中查找内容时。从mongodb我可以从控制台添加和查询数据库,但当我尝试从快递中添加或查询我有问题。如下所示,我有我的模型,然后在我的passport.js
文件中要求它。当我User.findOne()
时,它会为变量null
和user
返回err
。我不知道从哪里开始,因为我知道数据存在,我无法从我的应用程序中查询。
模型/ user.js的
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
local: {
username: String,
password: String
}
});
module.exports = mongoose.model('User', userSchema);
passport.js
var LocalStrategy = require('passport-local').Strategy;
var User = require('./models/user.js');
module.exports = function (passport) {
passport.use('local-registration', new LocalStrategy({
usernameField: 'username',
passwordField: 'password'
}, function(username, password, done) {
console.log('credentials', username, password);
User.findOne({ 'local.username' : username }, function(err, user) {
console.log(user,err);
});
done();
}));
passport.serializeUser(function (user, done) {
done(null, user.id);
});
passport.deserializeUser(function (id, done) {
User.findById(id, function (err, user) {
done(err, user);
});
});
};
答案 0 :(得分:0)
尝试使用
passport.serializeUser(function (user, done) {
done(null, user._id);
});
user._id 是mongodb中正确生成的ID。 !