即使我尝试 post 在 POSTMAN 中获取状态 4​​04

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 
}); 

抱歉!我已经更正了代码