Express:这个功能是怎么工作的?
Express: How does this function work?
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。body。email并且在我的register html页面的body中,我提交了一个带有电子邮件和密码字段的表单,我可以这样简单地访问它们吗?
在函数(err, account)回调中,它究竟在哪里获得err和account变量?我从来没有真正理解回调函数的变量是如何决定的,甚至他们是什么,似乎当你路由它不知何故需要两个变量错误和帐户?
非常感谢!
1 -你应该阅读ExpressJS文档看看主体,查询和参数之间的区别基本上是这样的
body指的是请求的主体,即通过POST或PUT提交的数据查询是指url的搜索部分或查询字符串后面的"?"参数是指路径中被参数化的部分。
希望这能给你一个如何以及在哪里寻找信息的线索
2 - is节点约定,传递给回调函数的第一个变量总是错误变量,其余的是根据函数在这种情况下是帐户,因为该函数应该创建db帐户并返回整个帐户信息,因此它可以被回调
什么信息通常通过请求进入?
请求对象(req
)带有您正在处理的请求的数据。例如:
- 触发请求的表单中使用的字段(在
req.body
下) - 请求URL中使用的参数(
req.params
下) - 会话/cookie信息(
req.session
下)
查看更多。
在函数(err, account)回调中,它究竟在哪里获得err和account变量?
根据Node中的约定,回调将任何错误作为第一个参数传递,而任何非错误结果从第二个参数开始传递。因此,您通常会看到第一个参数称为err
。err
对象的结构不是完全标准的,但是假设在err
对象中会有一个message
字段是正常的,并且可能会有一些错误代码。
在您的示例中,您正在将该回调传递给Mongoose或其他数据库处理库。这个库将尝试在User
对象/模型/模式上执行register
函数。当它完成后,如果遇到任何错误,它们将在err
对象上返回给您。否则,您可以期望account
对象保存有关用户帐户的详细信息。
当然,你也可以将err
和account
命名为任何你想要的。
- JavaScript打印功能使日历停止工作
- jQuery滚动功能只工作一次
- 为什么ng控制器不调用或工作或功能不工作
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- AngularJs中的自动完成功能无法正常工作
- 为什么获胜'我的自定义功能工作
- 角度控制器功能赢得'不按指令工作
- 当我用鼠标左键点击时,让这个功能工作起来
- 重新启动游戏jQuery功能不工作
- 滚动功能不工作
- 角度控制器功能不;在指令内部调用时,似乎无法始终如一地工作
- JS不工作:Sublime 3编辑器-Var main=函数()-=不是“”;激活“;(功能新手)
- 单击水平滚动库中的图像以居中显示无法工作的功能
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- 为什么本机浏览器排序功能的工作速度比快速排序慢
- 正在尝试获取此代码'在wordpress页面中工作的功能
- JavaScript:如何适应Firefox和/或Chrome的工作功能(IE)
- JQuery不工作.(功能)
- 无工作功能,具有ng-repeat
- 在角度方向don't控制器的工作功能