Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在Express中从Mongoose获取数据?_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 如何在Express中从Mongoose获取数据?

Node.js 如何在Express中从Mongoose获取数据?,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我正在尝试使用Express从猫鼬那里获取一些数据。我已经创建了一个用户名和密码表单来登录我的站点。如果凭证与数据库中存储的凭证相同,它应该检查凭证并让它们进入,但它允许任何内容进入(即使我输入了错误的密码)。我的源文件看起来很好,控制台没有抛出任何错误。这些文件的注册信息如下: 还有app.js文件(由于我的声誉,无法提供): 谢谢你的帮助 在登录处理程序中,实际上没有检查查询是否与用户匹配 也许您假设在这种情况下会设置err,但不会设置,因为查询本身已成功执行(它只是没有返回任何记录)

我正在尝试使用Express从猫鼬那里获取一些数据。我已经创建了一个用户名和密码表单来登录我的站点。如果凭证与数据库中存储的凭证相同,它应该检查凭证并让它们进入,但它允许任何内容进入(即使我输入了错误的密码)。我的源文件看起来很好,控制台没有抛出任何错误。这些文件的注册信息如下:

还有app.js文件(由于我的声誉,无法提供):


谢谢你的帮助

在登录处理程序中,实际上没有检查查询是否与用户匹配

也许您假设在这种情况下会设置
err
,但不会设置,因为查询本身已成功执行(它只是没有返回任何记录)

您需要添加额外的检查,以查看查询是否返回了有效的用户:

User.findOne( {email: email, password: password}, function (err, user) {
    if (err) throw err;
    if (! user) return res.send(401);
    res.render('portal');
});

当查询与用户不匹配时,这将返回401(“未经授权”)。

在登录处理程序中,您实际上没有检查查询是否与用户匹配

也许您假设在这种情况下会设置
err
,但不会设置,因为查询本身已成功执行(它只是没有返回任何记录)

您需要添加额外的检查,以查看查询是否返回了有效的用户:

User.findOne( {email: email, password: password}, function (err, user) {
    if (err) throw err;
    if (! user) return res.send(401);
    res.render('portal');
});

当查询与用户不匹配时,将返回401(“未经授权”)。

您遗漏了最重要的部分:应用程序代码。请将相关部分添加到您的问题中(内联,而不是作为链接)。这是相当一般的,但是有很多指南和示例,您可能会发现它们很有用。是一个非常好的版本。@robertklep我已经添加了源代码,如果必须的话,请检查一下!您遗漏了最重要的部分:应用程序代码。请将相关部分添加到您的问题中(内联,而不是作为链接)。这是相当一般的,但是有很多指南和示例,您可能会发现它们很有用。是一个非常好的版本。@robertklep我已经添加了源代码,如果必须的话,请检查一下!非常感谢!正是我需要的!非常感谢!正是我需要的!