Soy bastante nuevo en ExpressJS, así que tengo una pregunta sobre mi Código.
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); }
¿Es suficiente declarar el método de creación como asíncrono o tengo que declarar la devolución de llamada también como asíncrona?
router.post("/create", async (req: Request, res: Response) => { await pruefungController.create(req, res); });
En mi opinión, debería ser suficiente esperar la acción del método .save(), pero no sé cómo maneja Express el método pasado al método router.post() :(
La única vez que necesita declarar una función como async
es si usa la palabra clave await
dentro de ella.
La única vez que necesita usar la palabra clave await
es si necesita una función para esperar a que se resuelva una promesa antes de continuar.
La función que pasa a post
no hace nada después de llamar a pruefungController.create
. Tampoco le importa nada el valor que devuelve. No necesita usar await
allí, por lo que no necesita hacerlo async
.
De hecho, esa función no hace nada excepto llamar a otra función con los mismos argumentos, por lo que puede deshacerse de ella:
router.post("/create", pruefungController.create);