嗨,我在发出POST请求时遇到错误

时间:2020-09-17 23:31:37

标签: node.js mongodb mongoose

我正在使用Nodejs,MongoDB和Mongoose,在发出POST请求时出现错误: POST http:// localhost:3000 / subscribers 内容类型:application / json { “ name”:“ Lucky”, “ subscribedToChannel”:“ Dev Tech” }

错误:{ “ message”:“订户验证失败:名称:路径name是必需的。subscribedToChannel:路径subscribedToChannel是必需的。” } 下面是代码段:


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

1 个答案:

答案 0 :(得分:0)

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

例如:app.use(bodyparser.urlencoded({扩展:false}))