Как передать асинхронную функцию обработчика по маршрутуJavascript

Форум по Javascript
Ответить
Anonymous
 Как передать асинхронную функцию обработчика по маршруту

Сообщение Anonymous »

Я кодирую экспресс -API, и я хочу использовать асинхронные функции в App.use () и app.get () Методы. Когда я это сделаю, я получаю ошибку. < /P>
Мой маршрутизатор: < /p>

Код: Выделить всё

   import { Router } from "express";
import { register } from "../controllers/auth";
const authRouter = Router();

authRouter.post("/register", register);

export default authRouter;
< /code>
Ошибка: < /p>
    No overload matches this call.
The last overload gave the following error.
Argument of type '(req: Request
>, res: Response, next: NextFunction)     => Promise' is not assignable to parameter of type 'Application'.
Type '(req: Request,     res: Response, next: NextFunction) => Promise' is     missing the following properties from type 'Application':     init, defaultConfiguration, engine, set, and 63 more.ts(2769)
index.d.ts(168, 5): The last overload is declared here.
< /code>
Я нашел способ управлять им, обернув мой асинхронный обработчик в обычную функцию, но я не уверен, правильный ли это: < /p>
   authRouter.post("/register", (req, res, next) => {
register(req, res, next);
});
В моей памяти я никогда не добавляю проблемы, передающие асинхронные методы в качестве обработчика для моих маршрутов или в качестве промежуточного программного обеспечения.


Подробнее здесь: https://stackoverflow.com/questions/795 ... to-a-route
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»