Узел, Express, ошибка 404 / невозможно получить маршрут - PullRequest
0 голосов
/ 29 мая 2020

Я создаю приложение Express и у меня проблемы с маршрутизацией. Все мои маршруты работают отлично, за исключением одного.

У меня есть маршрут / admin / products, который работает:

const router = express.Router();

router.get("/admin/products", (req, res) => {
    res.send(productsIndexTemplate({ products }));
});

Другой маршрут / admin / products / new, который также работает:

router.get("/admin/products/new", requireAuth, (req, res) => {
    res.send(productsNewTemplate({}))
});

, но этот маршрут не работает:

router.get('/admin/products/:id/edit'), async (req, res) => { 
    const product = await productsRepo.getOne(req.params.id);
    res.send(productsEditTemplate( {product} ));
};

Я получаю правильный URL (это означает, что я получаю правильный идентификатор в URL, поэтому req.params.id не undefined или null, но у меня есть это сообщение:

Cannot GET /admin/products/08a4dc4f/edit

Я не думаю, что проблема в моем коде, так как другие маршруты работают, кроме последнего.

1 Ответ

1 голос
/ 29 мая 2020

Вы добавили круглую скобку (закрывающую скобку) в маршрут.

router.get('/admin/products/:id/edit'), async (req, res) => { //<---- Your error is in this line. After edit you added closing bracket.
    const product = await productsRepo.getOne(req.params.id);
    res.send(productsEditTemplate( {product} ));
};

Замените приведенным ниже кодом.

router.get('/admin/products/:id/edit', async (req, res) => { 
    const product = await productsRepo.getOne(req.params.id);
    res.send(productsEditTemplate( {product} ));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...