数据未插入 mongodb,它在邮递员中给出了无法获得任何响应错误

Data are not inserted in mongodb, it gives could not get any response error in postman

我使用平均堆栈构建项目。我使用邮递员插入记录但出现一个错误,我尝试解决很多时间但没有找到错误的地方。

Postman error

这是模型 user.js file.which 是显示 userSchema 的详细信息。 型号 -> user.js

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var config = require('../config/database');

// User Schema

var UserSchema = mongoose.Schema({
    name: {
        type: String,
    },
    email: {
        type: String,
        required: true
    },
    username: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    }
});

var User = module.exports = mongoose.model('User', UserSchema);

module.exports.getUserById = function(id, callback){
    User.findById(id, callback);
}

module.exports.getUserByUsername = function(username, callback){
    var query = {username: username}
    User.findOne(query, callback);
}

module.exports.addUser = function(newUser, callback){
    bcrypt.genSalt(10, (err, salt) => {
        bcrypt.hash(newUser.password, salt, (err, hash) => {
            if(err) throw err; 
            newUSer.password = hash;
            newUser.save(callback);
        });
    });
}

这是路由 user.js 文件。此处显示寄存器路由器,还定义添加用户状态结果,如果在 mongo 中插入邮递员值,则可以显示该结果,然后成功显示另一条明智的不成功消息。 路线 -> users.js

var express = require('express');
var router = express.Router();
var password = require('passport');
var jwt = require('jsonwebtoken');

var User = require('../models/user');

// Register
router.post('/register', function(req, res, next){
    let newUser = new User({
        name: req.body.name,
        email: req.body.email,
        username: req.body.username,
        password: req.body.password
    });

    User.addUser(newUser, (err, user) => {
        if(err){
            res.json({success: false, msg:'Failed to Register User'});
        } else {
            res.json({success: true, msg:'User Registered'});
        }
    });
});

// Authenticate
router.post('/authenticate', function(req, res, next){
    res.send('Authenticate');
});


// Profile
router.get('/profile', function(req, res, next){
    res.send('Profile');
});

module.exports = router;

您错误地从 Postman 发送了请求。您不应使用 x-www-form-urlencoded。在将其作为 json 对象发送时使用 Raw 选项,如下所示:

{
    "name": "Mark Melton",
    "email": "xyz@gmail.com",
    "username": "shuta",
    "password": "Sunala123"
}

这就是它的工作原理,因为在您的路线中,您正在使用 req.body...