在方法中表达异步方法

Express Async Method in Method

我对 ExpressJS 很陌生,所以我对我的代码有疑问。

    router.post("/create", (req: Request, res: Response) => {
    pruefungController.create(req, res);
});


public async create(req: Request, res: Response): Promise<void> {
        const pruefung = new Pruefung({
            fach: req.body.fach,
            datum: req.body.datum,
            raum: req.body.raum
        });
        await pruefung.save();
        res.send(pruefung);
    }

将创建方法声明为异步是否足够,还是我必须像这样将回调也声明为异步?

router.post("/create", async (req: Request, res: Response) => {
    await pruefungController.create(req, res);
});

在我看来,等待 .save() 方法的操作就足够了,但我不知道 Express 如何处理传递给 router.post() 方法的方法:(

唯一需要将函数声明为 async 的情况是在其中使用 await 关键字。

您唯一需要使用 await 关键字的情况是您需要一个函数来等待 promise 解决后再继续。

您传递给 post 的函数在调用 pruefungController.create 后不执行任何操作。也没有什么关心它的价值returns。你不需要在那里使用 await 所以你不需要让它成为 async.

就此而言,该函数 什么都不做 除了用相同的参数调用另一个函数,所以你可以去掉它:

router.post("/create", pruefungController.create);