我正在处理Express.js中的一个API,并try 实现一个处理GET请求中的id参数的app.param()
函数:
app.param('id', (req, res, next, id) => {
const envelopeIndex = Number(id);
const envelopeId = envelopes.findIndex(envelope => envelope.id === envelopeIndex);
if (envelopeId === -1) {
res.status(400).send("Error: No envelope found with this ID");
}
req.id = envelopeId;
next();
});
对于另一个从一个信封向另一个信封传输一定数量的POST请求处理程序(通过它们的ID),我还想验证两个都是ID的路由参数(/envelopes/:from/:to/).
我的问题:
- 我可以重构上面的中间件,让它处理多个参数,而不必重复自己吗?
- 如果是,有没有一种方法可以动态地向请求对象分配经过验证的ID(例如,如果我正在验证‘from’的ID,它会将经过验证的ID分配给req.senderID,等等).
我试过:
- 重复中间件三次(每个路由参数一次)