【问题标题】:Express js bodyparser post req.body not working?Express js bodyparser post req.body 不起作用?
【发布时间】:2019-08-29 00:23:52
【问题描述】:

我尝试使用 express js post 请求构建一个 api。我将 body-parser 用于 req.body 。但是在发送发布请求后,我无法收到任何仍在加载的消息,然后显示超时。我的问题在哪里,请看一下我的代码。 我正在从邮递员那里测试它并在标题内容类型应用程序/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'));

【问题讨论】:

  • 你能展示你的架构和 req.body 吗?
  • 你的cookieParser是什么,发帖
  • 我删除了 cookieParser。但仍然错误。请检查我更新的问题。谢谢

标签: javascript node.js json express mongoose


【解决方案1】:

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

此外,它可能会超时,因为它无法通过您的 cookie-parser 中间件。

你已经通过了函数:

app.use(cookieParser)

...但你需要调用它:

app.use(cookieParser())

您还需要导入它:

const cookieParser = require('cookie-parser')

...或者如果你不需要它就完全删除它。

我希望这会有所帮助。

【讨论】:

  • 我删除了 cookieParser。但仍然错误。请检查我更新的问题。谢谢
  • 尝试将您的路线从api/book 更改为/api/book(添加前导/)。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多