Вы работаете правильно (за исключением того факта, что вы не используете res
для ответа на запрос).
Причина, по которой вам нужно использовать async
, заключается в том, что подпись app.post()
is
app.post(path: string, handler: (req: Request, res: Response) => void): void
, то есть два параметра, один путь, который является строкой, и обработчик, который является функцией, которая принимает два параметра (она принимает больше, но ради простоты,давайте пока проигнорируем их) и ничего не возвращаем.
Как видите, app.post()
на себя не имеет интересного возвращаемого значения (и особенно, оно не возвращает обещание), поэтому оно не являетсяФункция async сама по себе.
Вы передаете функцию, описывающую, что вы хотите сделать, когда запрос попадает в путь ('/signup'
, в вашем случае).Поскольку вы хотите использовать асинхронные функции (также известные как await
) в этой функции, эта функция должна быть помечена async
.
TL; DR - ваша функция-обработчик асинхронная, app.post()
не.