Nodejs用户registry单错误
我正在使用MEAN堆栈制作一个虚拟学习项目。 我现在陷入了一个问题。
index.controller.js
var User = require("../models/user"); controller.registerUser = function(req,res){ User.find({ 'email' : req.body.email }, function(err, user){ console.log(req.body.email); console.log(user); if(user){ res.send("User already exist"); }else{ var userModel = new User(); userModel.email = req.body.email.toLowerCase(); userModel.password = userModel.generateHash(req.body.password); userModel.save(function(err, data) { if (err) { res.send("Error Occurred"); } else { res.send("User Created"); } }); } }); }; module.exports = controller;
每次我收到回复
"User already exist"
而我的collections中没有用户。 我做错了什么?
find
会返回一个Array用户,所以给你一个条件,不pipe用户是否为null []
,
如
if (user.length > 0) { res.send("User already exist"); } else { // do your stuffs }
如果您正在search一个用户,最好使用findOne
, findOne
返回单个文档而不是数组
如果用户不在数据库中,则返回null
Use findOne instead of find
var User = require("../models/user"); controller.registerUser = function(req,res){ User.findOne({ 'email' : req.body.email }, function(err, user){ console.log(req.body.email); console.log(user); if(user){ res.send("User already exist"); }else{ var userModel = new User(); userModel.email = req.body.email.toLowerCase(); userModel.password = userModel.generateHash(req.body.password); userModel.save(function(err, data) { if (err) { res.send("Error Occurred"); } else { res.send("User Created"); } }); } }); }; module.exports = controller;
在你的情况下, User.find
将返回一个数组[]
。
if
在空数组返回true 。
如果你有方法User.findOne
使用,当search单个logging
var users = []; if (users) console.log('Check1: User found'); else console.log('Check1: User not found'); // Use below code if (users && users.length > 0) console.log('Check2: User found'); else console.log('Check2: User not found');
- 的NodeJS。 我应该使用什么库来存储在MongoDB中的会话
- Mongoose Model.remove(callback)不会从我的collections中删除任何东西
- 如何检查从req.user的用户ID从Passport JS和MongdoDB用户ID匹配更新/删除文档之前?
- unit testing查询数据库的方法
- Nodejs Mongoose – 如何避免callback地狱?
- docker在尝试连接到mongodb时出错
- 在Node.js中,引用同一个文件中的另一个函数会导致“ReferenceError:-function- is not defined”错误
- 我想从本地客户端工具连接openshift mongodb数据库
- Mongodb时间戳非常不准确 – mongoose