Использование метода Array.find () с req.param в TypeScript - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь понять основы "экспресс" пакета JS, и я застрял в получении элементов массива на основе индекса, который приходит из URL.

Вот мой код, это почти копия кода инструктора Удеми, я писал одновременно.

const express = require('express');
const app = new express();

const users = [
    { id: 1 , name: "harun" },
    { id: 2 , name:"apo" },
    { id: 3 , name: "ogi" }
]


app.get('/', (req,res) => {
    res.send("Welcome to my Page");
});

app.get('/api/users', (req,res) => {
    console.table(users);
    res.send(users);
});

app.get('/api/users/:id', (req,res) => {
    const user = users.find(c => c.id === parseInt(req.param.id));
    if(user === null) res.status(404).send("User is not found");
    res.send(user);
});


const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listening on port: ${port}`));

Страница локального хоста достигает статуса 404, пользователь не найден. Проблема, скорее всего, в строке:

 const user = users.find(c => c.id === parseInt(req.param.id));

Может кто-нибудь помочь мне это исправить?

1 Ответ

1 голос
/ 23 июня 2019

Я думаю, вы смотрите не в том месте.Express предоставляет параметры маршрута в req.params, а не в req.param.

Возможно, изменив его на: parseInt(req.params.id, 10) поможет вам

...