Node.js 请求中的nodejs express配置文件属性
我对一个用法感到非常困惑: 在路由文件中:Node.js 请求中的nodejs express配置文件属性,node.js,express,Node.js,Express,我对一个用法感到非常困惑: 在路由文件中: app.param('userId', users.load); 以及users.load函数: exports.load = function (req, res, next, id) { var options = { criteria: { _id : id } }; User.load(options, function (err, user) { if (err) return n
app.param('userId', users.load);
以及users.load函数:
exports.load = function (req, res, next, id) {
var options = {
criteria: { _id : id }
};
User.load(options, function (err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User ' + id));
req.profile = user;
next();
});
};
在这里,路由应该有用户ID来响应,但是作者为什么在这里使用req.profile
<代码>配置文件不是属性
有人能帮忙吗
谢谢。代码的作用是:对于具有
userId
参数的路由(即,与此类似的路由:/user/:userId
),Express将在调用路由处理程序之前调用load()
函数
load函数从数据库加载属于userId的用户配置文件,并将其作为新创建的属性req.profile
添加到req
.profile
属性名称由作者任意命名,并证明了将属性添加到req
(或res
)是完全有效的,但惯例是将这些属性添加到req
)
在路由处理程序中,您可以使用req.profile
。它基本上是一种将数据从中间件和app.param()
实现传播到路由处理的其他部分的方法