У меня есть ситуация, когда я хочу вызвать несколько промежуточных программ экспресс-обслуживания, в зависимости от полезной нагрузки запроса.
Эти промежуточные программы генерируются из экспресс-проверки 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
}
});
Здесь схема 1 и схема 2 не являются одним промежуточным программным обеспечением. Это
массив промежуточного программного обеспечения.
Если бы это было промежуточное ПО, я мог бы вызвать schema1 (req, res, next);
Если кто-нибудь прошел через это, подскажите, пожалуйста, каков подход к запуску массива промежуточного программного обеспечения вручную.