Express js bodyparser发布req.body无法正常工作?

时间:2019-04-07 20:41:03

标签: javascript node.js json express mongoose

我尝试用express js post请求构建一个api。我将body-parser用于req.body。但是在发送发布请求后,我仍然无法加载任何消息,然后显示超时。我的问题在哪里,请看一下我的代码。 我正在从邮递员测试它,并在标头内容类型application / json上使用。

const express = require('express');
const bodyParser = require('body-parser');
const config = require('./config/config.js').get(process.env.NODE_ENV);
const mongoose = require('mongoose');
const app = express();
mongoose.connect(config.DATABASE)
const {Book} = require('./models/book')

app.use(bodyParser.json())

// Post Book
app.post('api/book', (req,res)=>{
    let book = new Book(req.body)

    book.save((err, doc)=>{
        if(err) return res.status(400).send(err);
        res.status(200).json({
            post:true,
            bookId: doc._id
        })
    })
})

现在显示错误-无法发布/ api / book 但是当我尝试使用以下代码时

const book = new Book({ name: 'Zildjian' });
book.save().then(() => console.log('data save'));

1 个答案:

答案 0 :(得分:2)

将路线从api/book更改为/api/book-添加前导/

此外,由于它无法通过您的 cookie-parser 中间件,因此似乎正在超时。

您已传递函数:

app.use(cookieParser)

...但是您需要调用它:

app.use(cookieParser())

您还需要导入它:

const cookieParser = require('cookie-parser')

...或者在不需要时将其完全删除。

我希望这会有所帮助。