使用MongoDB和Node.JS创建Passport Local的新用户
以下是新用户的代码:使用MongoDB和Node.JS创建Passport Local的新用户,node.js,mongodb,passport.js,Node.js,Mongodb,Passport.js,以下是新用户的代码: var User = mongoose.model('User', userSchema); var usr = new User({ username: 'bob', email: 'bob@example.com', password: 'secret' }); 以下是检查登录名的代码 passport.use(new LocalStrategy(function(username, password, done) { User.findOne({ usernam
var User = mongoose.model('User', userSchema);
var usr = new User({ username: 'bob', email: 'bob@example.com', password: 'secret' });
以下是检查登录名的代码
passport.use(new LocalStrategy(function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false, { message: 'Unknown user ' + username }); }
user.comparePassword(password, function(err, isMatch) {
if (err) return done(err);
if(isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Invalid password' });
}
});
});
}));
如果用户名
不存在,则会显示“未知用户”
我想在数据库中创建一个新用户,而不是说未知用户
。如何修改此代码以实现此目的
如果登录名不存在,我想用他们输入的登录信息创建一个新用户
使现代化
我正在尝试这个,但它不起作用。bob5未保存到数据库
passport.use(new LocalStrategy(function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) { usr = new User({ username: 'bob5', email: 'bob5@example.com', password: 'secret' });
usr.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: ' + usr.username + " saved.");
}
});
如果我输入这个,bob99将保存到数据库中。所以我可以创建一个用户。。。我只需要在if语句中向它传递参数(我想)
所以代替
返回完成(…)
做一个插入。我不知道如何执行“新用户”命令,其中显示返回完成。你能告诉我正确的语法吗?我会给你们一个向上投票:)我不也需要把User作为参数传递进去吗?所以呢?代替返回完成(…)
做一个插入。我不知道如何执行“新用户”命令,其中显示返回完成。你能告诉我正确的语法吗?我会给你们一个向上投票:)我不需要把用户作为参数传递进去吗?谢谢,瓦丹!您可以包含创建用户的代码吗?我不确定如何传递参数/参数。在您试图保存bob5的上述更新代码中,括号未正确闭合。检查一下,谢谢,瓦丹!您可以包含创建用户的代码吗?我不确定如何传递参数/参数。在您试图保存bob5的上述更新代码中,括号未正确闭合。检查一下。
usr = new User({ username: 'bob99', email: 'bob99@example.com', password: 'secret' });
usr.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: ' + usr.username + " saved.");
}
});
passport.use(new LocalStrategy(function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
usr = new User({ username: 'bob99', email: 'bob99@example.com', password: 'secret' });
usr.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: ' + usr.username + " saved.");
}
});
}
user.comparePassword(password, function(err, isMatch) {
if (err) return done(err);
if(isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Invalid password' });
}
});
});
}));