问题
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