我正在使用Node / Express / Passport向我的网站注册新用户。很简单。我正在使用Mongoose来保存数据。
目标:我试图让一个人(未登录)回答几个问题。 (存储在vars中的答案)然后,一旦他们完成,我希望他们注册一个新帐户。
当他们注册时,我想将他们的用户名和密码以及他们答案中的数据传递给数据库。因此,目标是一键完成。这是我迄今为止没有运气的尝试。谢谢你的帮助!!
var Beliefs = mongoose.model("Beliefs", beliefsSchema);
//handle sign up logic
app.post("/quiz", function(req, res){
var newUser = new User({username: req.body.username});
User.register(newUser, req.body.password, function(err, user){
if(err){
req.flash("error", err.message);
console.log(err)
}
passport.authenticate("local")(req, res, function(){
req.flash("success", "Welcome to JobQuiz " + user.username);
res.redirect("jobquiz");
});
});
});
//Create Answers
Beliefs.create(req.body.beliefs, function(err, newBeliefs){
Beliefs.create(req.body.beliefs2, function(err, newBeliefs2){
if(err){
console.log(err)
} else {
newBeliefs.author.id = req.user._id;
newBeliefs.author.username = req.user.username;
newBeliefs.save();
newBeliefs2.author.id = req.user._id;
newBeliefs2.author.username = req.user.username;
newBeliefs2.save();
console.log("User is:" + req.user.username)
console.log(req.body.beliefs)
res.redirect("/elementsintro");
}
});
});
编辑:
这是我的问题。在此过程中,如何将信息保存到USER。我的问题是什么时候 我添加下面的代码:
newBeliefs.author.id = req.user._id; newBeliefs.author.username = req.user.username;
...我收到一条错误消息,表示还没有用户。怎么解决这个问题?
答案 0 :(得分:0)
您可以创建新的LocalStrategy,如果用户不存在,或者用户名和密码与现有用户匹配,则会注册用户。
{name: "Enable", value: 1, flag: "ppp", traverse: "down"}
然后注册新端点:
value