router.post('/register', function(req, res) {
User.register(new User({ username : req.body.email }), req.body.password, function(err, account) {
if (err) {
return res.render('register', { account : account });
}
passport.authenticate('local')(req, res, function () {
res.redirect('/');
});
});
});
我大致了解了这篇路由文章,但我不明白全部内容。
通常通过 req 传入哪些信息?似乎如果我执行 req.body.email 并且在我的注册 html 页面的正文中提交了带有电子邮件和密码字段的表单,我可以简单地以这种方式访问它们吗?
在 function(err, account) 回调中,到底从哪里获取 err 和 account 变量?我从来没有真正理解回调函数的变量是如何决定的,甚至它们是什么,似乎当你以某种方式路由它时需要两个变量 err 和 account?
非常感谢!
最佳答案
第一- 那么你应该阅读 ExpressJS 文档并了解正文、查询和参数之间的区别,但基本上是这样的
body指请求的正文,是通过POST或PUT提交的数据 query 指的是 url 或查询字符串的搜索部分“?”之后的所有内容 params 指的是路径中被参数化的部分。
希望能为您提供有关如何以及在何处查找信息的线索
第二个 - 是 Node 约定,传递给回调的第一个变量始终是错误变量,其余的根据本例中的函数是帐户,因为该函数假设创建数据库帐户并返回整个帐户信息,所以 ir可以被回调使用
关于javascript - 快报:这个功能是如何实现的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226553/