Я пытаюсь написать фабрику промежуточного программного обеспечения на сервере node.js api с express.
export function argMiddlewareFactory(args: any[]) {
const middleware = async (
req: Request,
res: Response,
next: NextFunction
) => {
for (let arg of args) {
console.log("inside argMiddlewar");
console.log(arg);
if (!req.body.hasOwnProperty(arg)) {
let errorMessage: string = `Following property is required: ${arg}`;
res.status(400).send(errorMessage);
}
}
next();
};
return middleware;
}
Эта функция должна принимать массив ключей (требуется после запроса по почте и возвращать промежуточный слой). Например:
requiredArgs: string[] = ["email","password"];
const credentialMiddleware = argMiddlewareFactory(requiredArgs)
router.use(credentialMiddleware)
Проблема в том, что когда я запускаю сервер, я получаю эту ошибку:
TypeError: argMiddlewareFactory is not a function at Object.<anonymous>
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/home/linux/Progetti/Private/ecommerce-cartoleria/Code/product-service/server/build/src/index.js:23:21)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
Можете ли вы объяснить, почему это?