我一直在编码后端api,但我并没有真正了解它对我的代码的出价方式。我知道请求和响应对象提供了什么,我只是不明白它们是如何实现的。
这个简化的代码例如:
exports.getBlurts = function() {
return function(req, res) {
// build query…
qry.exec(function(err, results) {
res.json(results);
}
});
}
}
然后我打电话给我的一条路线:
app.get('/getblurts/, middleware.requireUser, routes.api.blurtapi.getBlurts());
我知道该功能是在路由请求时调用的。不过,这对我来说是非常抽象的,我不了解何时,何时何地与所注入的需求参数有关。
例如。我使用的CMS可以通过添加用户属性来修改请求对象,该属性随后可以在所有通过ajax或其他方式发出的请求上全局使用,从而始终可以轻松确定用户是否已登录。
req和res对象是否只是通过express预煮的,但是可以根据需要修改它们的自由度?他们何时真正“建造”
Express本质上实际上是使用节点的默认http模块,并将express-application作为回调传递给http.createServer
-function。此时,即从节点本身为每个传入连接填充请求和响应对象。有关节点的http模块以及要求/要求的更多详细信息,请参见nodeJS文档。
您可能想查看express的源代码,该代码显示了express应用程序如何作为回调传递给http.createServer
。
https://github.com/expressjs/express/blob/master/lib/request.js和https://github.com/expressjs/express/blob/master/lib/response.js显示节点的请求/响应如何通过表达特定功能扩展。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句