Я пытаюсь создать свой собственный REST API, используя express / node.js. Я следовал учебному пособию на YouTube и подошел к тому моменту, когда тестирую данные POST для почтальона в массив, который я сохранил и который называется users
.
Вот мой пост
app.post('/api/users', (req, res) => {
const user = {
userID: users.length + 1,
name: req.body.name,
username: req.body.username,
email: req.body.email
};
users.push(user);
res.send(user);
})
Вот мой массив
const users = [{
userID: 1,
name: 'Thomas',
username: 'Tomhass1999',
email: 'tomhass@yahoo.com'
}, {
userID: 2,
name: 'Bob',
username: 'Bobina1998',
email: 'bobiskewl@gmail.com'
}, {
userID: 3,
name: 'Gerald',
username: 'geraldorivero1965',
email: 'witch3r3bestgame@gmail.com'
}];
Вот функция для их отображения.
app.get('/api/users/:userID', (req, res) => {
const user = users.find(c => c.userID === parseInt(req.params.userID));
if(!user) // 404
{
res.status(404).send("The user with the given ID was not found");
}
res.send(user);
})
Когда я использую почтальон, я нажимаю на post, введите http://localhost:3000/api/users
, и он показывает мне массив и всю информацию, которую я ожидал. Однако при вводе этого сообщения в текстовое поле man man
{
name: 'Grindlebold',
username: 'Btestest38',
email: 'estestes2312ewl@gmail.com'
}
Вывод только
{
"userID": 6
}
и после входа в http://localhost:3000/api/users
в Firefox он показывает мне первые 3 точки в массиве, а затем просто:
0
userID 1
name "Thomas"
username "Tomhass1999"
email "tomhass@yahoo.com"
1
userID 2
name "Bob"
username "Bobina1998"
email "bobiskewl@gmail.com"
2
userID 3
name "Gerald"
username "geraldorivero1965"
email "witch3r3bestgame@gmail.com"
3
userID 4
4
userID 5
5
userID 6
У меня вопрос, как бы получить его так, чтобы он сохранил его должным образом со всей необходимой мне информацией?
/*
---
KEY
---
req = request
res = response
GET = get data
POST = submit data
*/
const express = require('express');
const app = express();
app.use(express.json());
const users = [
{
userID: 1,
name: 'Thomas',
username: 'Tomhass1999',
email: 'tomhass@yahoo.com'
},
{
userID: 2,
name: 'Bob',
username: 'Bobina1998',
email: 'bobiskewl@gmail.com'
},
{
userID: 3,
name: 'Gerald',
username: 'geraldorivero1965',
email: 'witch3r3bestgame@gmail.com'
},
];
app.get('/', (req, res) => {
res.send('Hello World');
});
// returns the user list
app.get('/api/users', (req, res) => {
res.send(users);
})
// adds a user to the user list
app.post('/api/users', (req, res) => {
const user = {
userID: users.length + 1,
name: req.body.name,
username: req.body.username,
email: req.body.email
};
users.push(user);
res.send(user);
})
app.get('/api/users/:userID', (req, res) => {
const user = users.find(c => c.userID === parseInt(req.params.userID));
if(!user) // 404
{
res.status(404).send("The user with the given ID was not found");
}
res.send(user);
})
// PORTS
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listening on port: ${port}...`))