创建用户时,会先对表中的数据进行查询,是在查询的这里出错了,不明白原因,烦请指点:
用户模型:models/User.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserSchema = new Schema({
userName:{
type:String,
required:true
},
userEmail:{
type:String,
required:true
},
userPassword:{
type:String,
required:true
},
userAvatar:{
type:String
},
userDate:{
type:Date,
default:Date.now
}
});
const UserModel = mongoose.model("User",UserSchema);
module.exports = UserModel;
定义路由并查询表 router/api/user.js:
const express = require('express');
const router = express.Router();
const myModel = require('../../models/User');
/**
* POST api/user/register
*/
router.post('/register',(req,res) => {
//从用户模型中创建对象
var users = new myModel (req.body);
//查询数据库
users.findOne({userName:req.body.userName})
.then((user) => {
if(user){
return res.status(400).json({userName:'用户名巳存在'})
}else{
const newUser = newUser({
userName: req.body.userName,
userEmail:req.body.userEmail,
userPassword: req.body.userPassword,
userAvatar:req.body.userAvatar,
userDate:req.body.userDate
})
}
});
//给数据加密,加密后再保存到数据库
//保存数据到数据库
user.save()
.then(user => res.json(user))
.catch(err => console.log(err));
})
module.exports = router;
在使用 postman 测试时提示如下信息:
http://localhost:5000/api/user/register?userId=302&userName=kevin.chen&userEmail=kevin.chen@anviz.com&userPassword=123456
node 8.12.0
mongoose 5.4.0
body-parser 1.18.3
express 4.16.4
兄弟 不是保存不成功查不到数据啊 看报错 findOne not a function 语法错误

粗略看了一下你的代码,语法错误不止一处