gpt4 book ai didi

node.js - Nodejs用户注册表单报错

转载 作者:可可西里 更新时间:2023-11-01 10:41:06 25 4
gpt4 key购买 nike

我正在使用 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"

而我的收藏中没有用户。我做错了什么?

最佳答案

find 将返回一个 Array 用户,因此您必须满足条件,无论用户是否为 null []

比如

if (user.length > 0) {
res.send("User already exist");
} else {
// do your stuffs
}

如果要搜索单个用户,最好使用 findOnefindOne 返回单个文档不是数组


如果用户不在数据库中则返回空值

使用 findOne 代替 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;

关于node.js - Nodejs用户注册表单报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42668479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com