0
所以我使用Express和護照來創建應用程序。到目前爲止這麼好,但我遇到的問題是當我嘗試在我的mongo數據庫中查找某些東西時。從mongodb我可以添加和從控制檯查詢數據庫,但是當我嘗試從express中添加或查詢時,我遇到了問題。正如您在下面看到的,我有我的模型,然後在我的passport.js
文件中需要它。當我做User.findOne()
時,它返回null
變量user
和err
。我不確定該從哪裏出發,因爲我知道數據在那裏,我無法從我的應用程序中查詢它。查詢應用程序不工作的mongo數據庫
型號/ 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);
});
});
};
嘗試將'done()'移動到'User.findOne'回調中。例如,在'console.log(user,err)'之後。 –
所以,我這樣做,並得到這個作爲我的輸出http://i.imgur.com/QyDh7fe.png –
看起來它現在正在工作(控制檯正在記錄'null爲用戶和'空'錯誤)。在回調函數完成之前,您正在調用'done()'。 –