【发布时间】:2020-11-30 01:05:47
【问题描述】:
我试图在用户尝试注册新帐户时向他/她提供错误消息。 我正在使用 nodejs、express、mongodb、passport、passport-local、passport-local-mongoose 和 flash 消息。 用户模式仅包含用户名和密码 当我尝试 console.log 错误时,它们看起来都像这样: ctor [error-name] : 错误信息
我使用的代码是:
router.post("/register", function(req, res){
var newUser = new User({username: req.body.username});
User.register(newUser, req.body.password, function(err, user){
if(err){
console.log(err);
req.flash("error", err);
return res.render("register");
}
passport.authenticate("local")(req, res, function(){
req.flash("success", "Welcome to YelpCamp " + user.username);
res.redirect("/campgrounds");
});
});
});
因此,如果用户输入错误之前存在的用户名,则如下所示:
ctor [UserExistsError]: A user with the given username is already registered
如果没有用户名,则错误如下所示:
ctor [MissingUsernameError]: No username was given
等等 问题是我无法使用此代码从上面的行中提取错误消息:
req.flash("error", err);
请问如何打印错误信息。
【问题讨论】:
-
只是
redirect()到GET /register而不是render()。 -
对不起,没用
-
这一行:req.flash("error", err);返回 [object object] 而不是“具有给定用户名的用户已注册”,我想知道是否有办法从这一行提取此消息“ctor [UserExistsError]: A user with the given username is already注册”如果可能的话
标签: node.js express passport.js passport-local passport-local-mongoose