【问题标题】:Hi, I am getting error while making a POST request嗨,我在发出 POST 请求时遇到错误
【发布时间】:2021-01-04 21:33:00
【问题描述】:

我正在使用 Nodejs、MongoDB 和 Mongoose,并且在发出 POST 请求时出现错误: POST http://localhost:3000/subscribers 内容类型:应用程序/json { “名称”:“幸运”, "subscribedToChannel": "开发技术" }

错误:{ "message": "订阅者验证失败:名称:路径 name 是必需的。subscribedToChannel:路径 subscribedToChannel 是必需的。" } 代码sn-p如下:


server.js

const express = require('express')
const app = express()
const mongoose = require('mongoose')

mongoose.connect(mongodb://localhost/subscribers, { useNewUrlParser: true })
const db = mongoose.connection
db.on('error', (error) => console.error(error))
db.once('open', () => console.log('Connected to Database'))


app.use(express.json())
const subscribersRouter = require('./routes/subscribers')
app.use('/subscribers', subscribersRouter)

app.listen(3000, () => console.log('Server Started'))```
---------------------------------------------------------------------------------------------------
routers/subscribers.js

const express = require('express')
const router = express.Router()
const Subscriber = require('../models/subscriber')

// Creating one
router.post('/', async (req, res) => {
  const subscriber = new Subscriber({
    name: req.body.name,
    subscribedToChannel: req.body.subscribedToChannel
  })
  try {
    const newSubscriber = await subscriber.save()
    res.status(201).json(newSubscriber)
  } catch (err) {
    res.status(400).json({ message: err.message })
  }
})


module.exports = router
----------------------------------------------------------------------------------------------------
models/subscriber.js

const mongoose = require('mongoose')

const subscriberSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  subscribedToChannel: {
    type: String,
    required: true
  },
  subscribeDate: {
    type: Date,
    required: true,
    default: Date.now
  }
})

module.exports = mongoose.model('Subscriber', subscriberSchema)


  [1]: https://i.stack.imgur.com/rHf38.jpg

【问题讨论】:

  • i.stack.imgur.com/rHf38.jpg点击链接获取错误截图
  • 代码对我来说看起来不错,你是如何提出请求的?那条路由中req.body 的值是多少?

标签: node.js mongodb mongoose


【解决方案1】:

在app.use(express.json())上面使用bodyParser

喜欢:app.use(bodyparser.urlencoded({extended : false }))

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2021-04-11
    • 2022-01-06
    • 2023-04-11
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多