Node.js express: фабрика промежуточного программного обеспечения - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь написать фабрику промежуточного программного обеспечения на сервере 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)

Можете ли вы объяснить, почему это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...