在Method中表示Async方法



我对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关键字的时候是如果你需要一个函数等待一个承诺在继续之前解决。

传递给post的函数在调用pruefungController.create后不做任何事情。也没有任何东西关心它返回的值。你不需要在那里使用await,所以你不需要将其设置为async

对于这个问题,该函数不做任何除了调用另一个函数具有相同的参数,所以你可以摆脱它:

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

最新更新