Root маршрут не распознается - PullRequest
0 голосов
/ 06 февраля 2020

У меня проблема с тем, что один из маршрутов молча завершается с ошибкой 404.

app.ts

import * as express from 'express';
import * as rateLimit from 'express-rate-limit';
import * as helmet from 'helmet';
import * as xss from 'xss-clean';
import * as hpp from 'hpp';
import * as cors from 'cors';

import { router } from './routes/v1routes';

const app = express();

// Permite requisições de origens diferentes
app.use(cors());

// Seta cabeçalhos HTTP de segurança
app.use(helmet());

// Limita requisições para a mesma API
const limiter = rateLimit({
    max: 150,
    windowMs: 60 * 60 * 1000,
    message: 'Muitas requisições para este IP, por favor, tente de novo em uma hora.'
});
app.use('/api', limiter);

// Saneamento de dados contra XSS (remove código HTML malicioso enviado pelo usuário)
app.use(xss());

// Previne poluição de parâmetros
app.use(hpp());

// Monta as rotas
app.get( "/api/v1", router);

export default app;

routs / v1routes.ts

import { Router } from 'express';

export const router = Router();

router.get("/", async (req, res, next) => {
    res.status(200).json({
        status: 'success',
        data: {
            user: 'Test',
            req: {
                path: req.path
            }
        }
    });
});

В принципе, если я позвоню http://localhost:3001/api/v1/, он вернет 404 Cannot GET /api/v1/; использование http://localhost:3001/api/v1 также дает те же результаты.

Если, с другой стороны, я вместо этого переключаю маршрутизатор на прослушивание всего, то есть router.get("*", async (req, res, next) => {, он работает.

Должен быть чем-то невероятно простым, что я не могу выбрать.

1 Ответ

1 голос
/ 06 февраля 2020

Попробуйте так:

app.use( "/api/v1", router);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...