Как получить тот же тип данных, что и в методе Post для экспресса в машинописи - PullRequest
1 голос
/ 14 мая 2019

Я хочу передать свой запрос и ответ контроллеру, но не могу получить правильный тип данных.

У меня есть мой маршрутизатор ниже

import express from 'express'
import { ProjectController } from '../controllers/projectController';

const router = express.Router()
const projectController = new ProjectController()

router.post('/', function(request, response) {
    projectController.save(request, response)
})

export default router

Данные запроса выше export interface Request extends http.IncomingMessage, Express.Request и принимают от /node_modules/@types/express-serve-static-core/index.d.ts

Данные ответа выше export interface Response extends http.ServerResponse, Express.Response и берутся из /node_modules/@types/express-serve-static-core/index.d.ts

У меня есть мой контроллер ниже

export class ProjectController {
    public save(request: Request, response: Response) {
        response.status(200).send
    }
}

Тип данных запроса выше interface Request extends core.Request { }, и он берет от /node_modules/@types/express/index.d.ts Тип ответа выше - interface Response extends Body.

Проблема в том, что когда я передаю запрос и ответ от метода post методу сохранения контроллера, тип данных отличается, и он не показывает состояние и метод отправки. Итак, как мне объявить функцию с тем же типом данных, что и для метода post.

1 Ответ

1 голос
/ 14 мая 2019

Я решил эту проблему, используя поток .

router.ts

import express from 'express'
import { ProjectController } from '../controllers/projectController';

const router = express.Router()
const projectController = new ProjectController()

router.post('/', function(req, res) {
    projectController.save(req, res)
})

export default router

controller.ts

import { Router, Request, Response } from 'express'

export class ProjectController {
    public save(req: Request, res: Response) {
        res.status(200).send({message: 'Reached here'})
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...