model.save() returns an invalid output

白昼怎懂夜的黑 提交于 2021-01-03 06:24:32

问题


I am making a simple test for RESTApi using Node.js, mongodb and express from this article: MERN Part I: Building RESTful APIs with Node.js and Express but there is an error somewhere in code i can't locate. The author of article used babel but due to some other error i avoided it. Given below are code files:

App.js

var routes= require('./src/routes/userRoutes').routes
var express= require("express")
var mongoose=require('mongoose')
var bodyParser=require('body-parser')

const app = express();
const PORT=4001

// SET INDEX PAGE
app.get('/',function(req,res){
    res.send(`Node and express server running on PORT ${PORT}`);
});

// START SERVER
app.listen(PORT,function(){
    console.log(`Your server is running on PORT ${PORT}`);
});

// ESTABLISH ROUTES
routes(app)

// Join Database to API
mongoose.Promise= global.Promise;
mongoose.connect('mongodb://localhost/userdb', {
    useNewUrlParser:true,
    useUnifiedTopology:true
})

// body-parser setup
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

userModel.js : I have commented out the "required" to avoid the Validation Error and see what document is being saved in the collection.

var mongoose = require('mongoose')
const Schema = mongoose.Schema;
const  UserSchema = new Schema({
    userName:{
        type:String,
        //required:"Enter your name",
    },
    UserID:{
        type:Number,
        //required:"Enter User ID:",
    },
    password:{
        type:String,
        // reequired:"Enter your password?",
    }
});
module.exports={UserSchema}

userController.js:

var mongoose=require('mongoose')
var UserSchema = require("../models/userModel").UserSchema;
const UserModel= mongoose.model("Users",UserSchema)
const addNewUser = (req,res) => {
    let newUser= new UserModel(req.body);
    newUser.save((err,user) => {
        if(err) res.send(err)
        else res.json(user)
    })
}
module.exports={addNewUser}

userRoute.js:

var addNewUser = require('../controllers/userController').addNewUser;

const routes = (app) => {
    // create routes for login/signup/view
    app.route('/users')
    .get((req,res)=> res.send("Get request successful"))
    
    app.route('/users/:userID')
    .put((req,res)=>res.send(`Put Request succesful for ${req.params.donationID}`))
    .delete((req,res)=>res.send("delete Request successful"))
    .post(addNewUser);

    app.route('/done')
    .get((req,res)=>{
        res.send("Goodbye");
        process.exit(0);
    });
}
module.exports={routes};

Response recieved when POST request with URI:localhost:4001/users/1?userName=Adnan&UserID=123&password=0000

{
    "_id": "5fd0b07b12615110d420a91b",
    "__v": 0
}

Expected Output: User Object in JSON

来源:https://stackoverflow.com/questions/65215868/model-save-returns-an-invalid-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!