即使我尝试 post 在 POSTMAN 中获取状态 404
Getting status 404 in POSTMAN even when i try to post
我在这里使用硬编码的简单对象数组作为数据。有人能告诉我为什么我不能 post 来自 postman 的数据到 this.Im 能够获取数据,只有 post 有问题。我的代码如下
const express = require('express');
const app = express();
app.use(express.json());
const courses=[
{id:1,name:'course1'},
{id:2,name:'course2'},
{id:3,name:'course3'}
]
app.get('/',(req,res)=>{
res.send("Hello world")
})
app.get('/api/users',(req,res)=>{
res.send(courses);
});
app.post('/api/courses',(req,res)=>{
const course={
id:courses.length+1,
name: req.body.name
};
courses.push(course);
res.send(course);
});
app.get('/api/users/:id',(req,res)=>{
const course = courses.find(c=>c.id===Number(req.params.id));
if(!course) res.status(404).send("The course with requested ID is not found");
res.send(course);
});
const port = process.env.PORT || 3000;
app.listen(port,()=>console.log(`listening to port ${port}...`))
我想您发送的数据是 x-wwww-form-urlencoded。您将不得不解析正文。
尝试添加这个:
app.use(express.urlencoded())
为了避免 deprication 警告,你可以这样写(你可以在解析 json 的地方做同样的事情):
app.use(express.urlencoded({ extended: true }))
尝试此代码并检查您必须在邮递员中将 GET 更改为 POST
POST http://localhost/api/courses
app.post('/api/courses',(req,res)=>{
const {course, name} = req.body // __refrence For Destructuring __ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
let a = parseInt(course) //convert string to int using parseInt
for (var i = 0; i < courses.length; i++) {
courses.push({
id : id[i]+1,
name : name[i]
});
}
res.send(courses); // return array of object
});
抱歉!我已经更正了代码
我在这里使用硬编码的简单对象数组作为数据。有人能告诉我为什么我不能 post 来自 postman 的数据到 this.Im 能够获取数据,只有 post 有问题。我的代码如下
const express = require('express');
const app = express();
app.use(express.json());
const courses=[
{id:1,name:'course1'},
{id:2,name:'course2'},
{id:3,name:'course3'}
]
app.get('/',(req,res)=>{
res.send("Hello world")
})
app.get('/api/users',(req,res)=>{
res.send(courses);
});
app.post('/api/courses',(req,res)=>{
const course={
id:courses.length+1,
name: req.body.name
};
courses.push(course);
res.send(course);
});
app.get('/api/users/:id',(req,res)=>{
const course = courses.find(c=>c.id===Number(req.params.id));
if(!course) res.status(404).send("The course with requested ID is not found");
res.send(course);
});
const port = process.env.PORT || 3000;
app.listen(port,()=>console.log(`listening to port ${port}...`))
我想您发送的数据是 x-wwww-form-urlencoded。您将不得不解析正文。
尝试添加这个:
app.use(express.urlencoded())
为了避免 deprication 警告,你可以这样写(你可以在解析 json 的地方做同样的事情):
app.use(express.urlencoded({ extended: true }))
尝试此代码并检查您必须在邮递员中将 GET 更改为 POST
POST http://localhost/api/courses
app.post('/api/courses',(req,res)=>{
const {course, name} = req.body // __refrence For Destructuring __ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
let a = parseInt(course) //convert string to int using parseInt
for (var i = 0; i < courses.length; i++) {
courses.push({
id : id[i]+1,
name : name[i]
});
}
res.send(courses); // return array of object
});
抱歉!我已经更正了代码