#javascript #node.js #typescript #express
Вопрос:
В моем приложении typescript express. У меня есть контроллер и настройка маршрутизатора, как показано на рисунке
// TestController.ts
export class TestContoller {
async create(req: express.Request, res. express.Response) {
res.json({
status: 'ok',
});
}
}
// router.ts
import express from 'express';
import { TestContoller } from './TestContoller';
const router = express.Router();
const testController = new TestController();
router.post('/', testController.create);
export default router
Я должен использовать
router.post('/', testController.create.bind(testController))
или добавьте это в конструктор контроллера
this.create = this.create.bind(this)
но мой маршрутизатор все еще работает, не делая ни того, ни другого. Почему это возможно?
Комментарии:
1.
create
не используетсяthis
, так что это действительно не имеет значения…2. маршрутизатор принимает функцию в качестве промежуточного программного обеспечения, поэтому, по сути, вам не нужно привязывать функцию к какому-либо маршруту как таковому
3. @deceze Ты прав. Протестировано с помощью контроллера, используемого
this
в методе, и это не удалось