邮递员“错误:ValidationError:用户名:路径`username`是必需的。”

时间:2019-11-02 12:57:51

标签: node.js mongodb mongoose postman

我正在尝试使用邮递员测试路线。 下面是我的user.model.js文件

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const userSchema = new Schema({
  username: {
    type: String,
    required: true,
    unique: true,
    trim: true,
    minlength: 3
  },
}, {
  timestamps: true,
});

const User = mongoose.model('User', userSchema);

module.exports = User;

我为用户提供的路由器文件如下

const router = require('express').Router();
let User = require('../models/user.model');

router.route('/').get((req, res) => {
    User.find()
        .then(users => res.json(users))
        .catch(error => res.status(400).json('Error: ' + error));
});

router.route('/add').post((req, res) => {
    const username = req.body.username;

    const newUser = new User({ username });

    newUser.save()
        .then(() => res.json('User added!'))
        .catch(error => res.status(400).json('Error: ' + error));
});

module.exports = router;

每次尝试为用户测试发布路线时,都会收到“错误:ValidationError:用户名:路径username是必需的。”错误 以下是我的邮递员enter image description here

的屏幕截图

任何人都可以帮助我弄清楚我哪里错了。

3 个答案:

答案 0 :(得分:1)

您传递的数据应为JSON格式,而不是多部分格式。如下更改邮递员的请求并进行检查。

enter image description here

答案 1 :(得分:1)

我有同样的问题。我可以通过在程序中添加下一部分来解决问题:

const bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json());

我的bodyparser版本是“ ^ 1.15.2”

答案 2 :(得分:0)

更改您的/ add路由器:

const newUser =新用户({username:username}); //更改

您必须以这种方式传递用户名。希望这对您有所帮助。如果出现任何错误,请告诉我。