【发布时间】:2019-11-03 12:13:19
【问题描述】:
我有一种情况,我想调用多个 express 中间件取决于请求负载。
这些中间件是从 express 验证器 checkSchema 生成的 方法。
所以我编写了一个可以访问请求对象的中间件,我可以从请求有效负载中读取一个属性,然后决定必须运行哪个模式。
一个实现应该是这样的。
let app = express();
let schema1 = checkSchema({
field1: {
in: ["body"],
exists: {
errorMessage: "field1 is missing",
}
}
});
let schema2 = checkSchema({
field2: {
in: ["body"],
exists: {
errorMessage: "field 2 is missing",
}
}
});
app.post("/resource", (req, res, next) => {
if(req.body.type === "TYPE1") {
// Invoke schema1 middleware
}
if(req.body.type === "TYPE2") {
// Invoke schema2 middleware
}
});
这里的 schema1 和 schema 2 不是单一的中间件。它是一个 中间件数组。
如果是中间件,我可以调用 schema1(req, res, next);
如果有人经历过这个,请建议我手动运行中间件数组的方法是什么。
【问题讨论】:
标签: node.js express express-validator