javascript - model.save() 返回一个无效的输出
问题描述
我正在使用本文中的 Node.js、mongodb 和 express 对 RESTApi 进行简单测试:MERN 第 I 部分:使用 Node.js 和 Express 构建 RESTful API, 但我无法找到代码中的某处错误。文章的作者使用了 babel,但由于其他一些错误,我避免了它。以下是代码文件:
应用程序.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 :我已注释掉“必需”以避免验证错误并查看集合中保存的文档。
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}
用户控制器.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}
用户路由.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};
带有 URI 的 POST 请求时收到响应:localhost:4001/users/1?userName=Adnan&UserID=123&password=0000
{
"_id": "5fd0b07b12615110d420a91b",
"__v": 0
}
预期输出:JSON 中的用户对象
解决方案
推荐阅读
- r - 使用 dplyr 将数据框和列表转换为长格式
- python - 我可以让工具提示在 plotly-dash 中保持点击吗?
- python - 如何修复“无法连接到 'localhost:3306' 上的 MySQL 服务器”错误
- python - 命名空间包的正确设置是什么,无论是安装的还是作为源包的?
- java - 是否可以读取 txt 文件的内容并使用 System.out.print(); 显示它?
- typescript - 在 Typescript 中使用具有泛型参数的类型作为构造函数
- angular - 如何限制用户在角度材料设计中最多选择 5 个选项
- c++ - 获取 `boost::filesystem::path` 字符指针的问题
- python - 另一个模块中导入的库的使用方法
- python - 如何过滤命令行输出?