Javascript 如何检查用户是否存在?

Javascript 如何检查用户是否存在?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试检查试图登录的用户的凭据。尽管我输入了数据库中已经存在的正确凭据,但我得到的输出是“未找到用户”。下面是代码片段。我希望你能帮忙。请具体点,因为我是一个初学者,我正在努力学习。谢谢 app.post('/login',函数(req,res){ credential.findOne({uname:req.body.uname,password:req.body.password},函数(err,isMatch){ 如果(错误){ 资源状态(500)。发送(错误); } 否则{ 如果(i

我正在尝试检查试图登录的用户的凭据。尽管我输入了数据库中已经存在的正确凭据,但我得到的输出是“未找到用户”。下面是代码片段。我希望你能帮忙。请具体点,因为我是一个初学者,我正在努力学习。谢谢

app.post('/login',函数(req,res){
credential.findOne({uname:req.body.uname,password:req.body.password},函数(err,isMatch){
如果(错误){
资源状态(500)。发送(错误);
}
否则{
如果(isMatch){
res.status(200).send(“您已成功登录”);
}
否则{
res.status(200).发送(“未找到用户”);
}
}
});

});您的代码应该可以工作

您需要检查问题是否来自其他地方

例如:

var Schema = require('mongoose').Schema;

var userSchema = new Schema({
  uname: {
    type: String,
    required: true
  },

  password: {
    type: String,
    required: true
  }
});

module.exports = require('mongoose').model('User', userSchema);
var User=require('pathToUserModel');
app.post('/login',函数(req,res){
User.findOne({
uname:req.body.uname,
密码:req.body.password
},函数(错误,用户){
if(err){返回res.status(500).send(err);}
如果(!user){返回res.status(200).send(“未找到用户”);}
返回res.status(200).send(“您已成功登录”);
}
});
});


我假设您在创建用户时正在加密用户密码,在这种情况下,您无法将纯文本发送到查询中。请您在credential.findOne中设置only uname:req.body.uname并检查是否返回任何内容。很好的身份验证示例,您可以在此处查看:@Nezir我没有加密任何内容。这是一个非常基本的应用程序,可以让我的概念变得清晰。@ArbazSiddiqui你是对的,它们的值都是空的。我怎样才能纠正它?请帮助我。api中的主体为空可能有多种原因。尝试以下操作:1)尝试使用postman点击api并在正文中发送
uname
password
。2) 如果您使用的是express,请检查
body parser
插件的配置是否正确。如果
isMatch
为null且
err
为null,则表示它在数据库中找不到用户。这是一种逻辑,因为它显示的是与本例相对应的
未找到用户
。是否检查数据库中是否存在该用户?(在命令行中)是。非常感谢你。我知道它必须更加安全,但我在这里所要做的就是慢慢来,让它工作起来。我希望你能理解。哪一个<代码>要求('pathToUserModel')?@TahseenRahman如果是这样,它不是npm包,这是需要模型的方式。您需要将其替换为定义模型的文件的路径。在我的示例中,它是我定义模式的文件。@TahseenRahman如果我下载了您的项目,它工作得很好。我可以注册一个用户,然后登录没有错误。用户是在数据库中创建的。一切都很好。也许你没有向你的服务器发送一个好的请求,因为我使用的表单比我在你的项目中创建的表单要多。@TahseenRahman我下载了你的项目,运行
npm install
,然后运行
npm i express
&
npm i mongoose
,因为它们不在package.json文件中。然后我创建了数据库,运行了它,创建了HTML表单,并运行了您的服务器。我没有改变你的密码。它很好用。