Javascript 匹配mongodb节点js中的邮件和传递

Javascript 匹配mongodb节点js中的邮件和传递,javascript,html,node.js,mongodb,Javascript,Html,Node.js,Mongodb,所以,我对这一切都是新手,正在开发一个登录和注册页面。通过注册页面注册时,我可以轻松地将数据保存到数据库中,但问题是我不知道在登录页面中要做什么。我必须使用什么类型的语句将输入的电子邮件地址与“员工”集合中每个文档的电子邮件地址匹配,然后检查密码输入是否正确 这是我的express文件main.js: var express = require("express"); var app = express(); var connection = require("../connection")

所以,我对这一切都是新手,正在开发一个登录和注册页面。通过注册页面注册时,我可以轻松地将数据保存到数据库中,但问题是我不知道在登录页面中要做什么。我必须使用什么类型的语句将输入的电子邮件地址与“员工”集合中每个文档的电子邮件地址匹配,然后检查密码输入是否正确

这是我的express文件main.js:

var express = require("express");

var app = express();

var connection = require("../connection");

module.exports = function(app){
    app.get('/', function(req, res){
        res.render("login.html");
    });

    app.get('/adduser', function(req, res){
        res.render("login.html");
        var name = req.param('name');
        var email = req.param('email');
        var employeeid = req.param('employeeid');
        var password = req.param('password');
        var position='';
        var joining_date= '';
        var active= 'Y';

        console.log("Name: " + name + " Email: " + email + "Employee id: " +employeeid);

        connection.add(name,email,employeeid,password,position,joining_date,active);
    });

    //CHECKING IF MAIL AND PASSWORD MATCHES
    app.get('/checkuser', function(req, res){
        var email = req.param('email');
        var password = req.param('password');

        console.log(" Email: " + email);
        connection.check(email,password);
    });
这是连接文件connection.js:

var add=function(uname,uemail,uemployeeid,upassword,uposition,ujoining_date,uactive) {
    var mongodb = require('mongodb');
    var MongoClient = mongodb.MongoClient;

    var url = 'mongodb://localhost:27017/HippoFeedo';

    MongoClient.connect(url, function (err, db) {
        if (err) {
            console.log('Unable to connect to the mongoDB server. Error:', err);
        }
        else {
            console.log('Connection established to', url);

            // Get the documents collection
            var collection = db.collection('employees');

            //Create some users
            var data = {name:uname,email:uemail,employeeid:uemployeeid,password:upassword,position:uposition,joining_date:ujoining_date,active:uactive };

            /* var user2 = {name: 'modulus user', age: 22, roles: ['user']};
            var user3 = {name: 'modulus super admin', age: 92, roles: ['super-admin', 'admin', 'moderator', 'user']};*/

            // Insert some users
            collection.insert(data, function (err, result) {
                if (err) {
                    console.log(err);
                } else {
                    console.log('Inserted %d documents into the "employees" collection. The documents inserted with "_id" are:', result.length, result);
                }
                db.close();
            });
        }
    });
} //NOW CHECKING IF ENTERED EMAIL AND PASS MATCHES OR EMAIL EXISTS???
var check= function(uemail,upassword)
{
    var mongodb = require('mongodb');
    var MongoClient = mongodb.MongoClient;

    var url = 'mongodb://localhost:27017/HippoFeedo';

    MongoClient.connect(url, function (err, db) {
        if (err) {
            console.log('Unable to connect to the mongoDB server. Error:', err);
        }
        else {
            console.log('Connection established to', url);

            var collection = db.collection('employees');

            collection.findOne({uemail:uemail}, function(err,doc){ //I HAVE NO IDEA WHAT TO DO HERE??
                if(err) throw err;
                if(doc)
                    console.log("Found: "+uemail+", pass=");
                else
                    console.log("Not found: "+uemail);
                db.close();
            });
        }
    });
}

module.exports.add=add;
module.exports.check=check;

已编辑:上述问题的修复程序由下面的GMANIC提供。

这是修复程序,您试图在
uemail
上进行匹配,但已将其保存为
电子邮件
。您甚至可以更进一步,同时匹配密码

exports.check = function(uemail, upassword)
{
    var mongodb = require('mongodb');
    var MongoClient = mongodb.MongoClient;

    var url = 'mongodb://localhost:27017/HippoFeedo';

    MongoClient.connect(url, function (err, db) {
        if (err) {
            console.log('Unable to connect to the mongoDB server. Error:', err);
        }
        else {
            console.log('Connection established to', url);

            var collection = db.collection('employees');

            collection.findOne({ email: uemail, password: upassword }, function(err, doc){
                if(err) throw err;
                if(doc) {
                    console.log("Found: " + uemail + ", pass=" + upassword);
                } else {
                    console.log("Not found: " + uemail);
                }
                db.close();
            });
        }
    });
}

您应该添加一些最佳实践,但要回答您的问题,这应该是可行的。

这是修复方法,您试图在
uemail
上匹配,但您将其保存为
电子邮件。您甚至可以更进一步,同时匹配密码

exports.check = function(uemail, upassword)
{
    var mongodb = require('mongodb');
    var MongoClient = mongodb.MongoClient;

    var url = 'mongodb://localhost:27017/HippoFeedo';

    MongoClient.connect(url, function (err, db) {
        if (err) {
            console.log('Unable to connect to the mongoDB server. Error:', err);
        }
        else {
            console.log('Connection established to', url);

            var collection = db.collection('employees');

            collection.findOne({ email: uemail, password: upassword }, function(err, doc){
                if(err) throw err;
                if(doc) {
                    console.log("Found: " + uemail + ", pass=" + upassword);
                } else {
                    console.log("Not found: " + uemail);
                }
                db.close();
            });
        }
    });
}

您应该添加一些最佳实践,但要回答您的问题,这应该是可行的。

您是否考虑过使用框架来帮助解决这一问题,例如mongodb连接器的mongoose和前端的express,或者作为api运行的restify?这里有一个例子:先生,我必须在不使用猫鼬的情况下完成所有这些。请提出一些简单的问题。谢谢。您是否考虑过使用一个框架来帮助解决这一问题,例如mongoose用于mongodb连接器,express用于前端,或者如果您将其作为api运行,则使用restify?这里有一个例子:先生,我必须在不使用猫鼬的情况下完成所有这些。请提出一些简单的问题。谢谢,谢谢!这是一个非常直截了当的完美答案。再次感谢,谢谢!这是一个非常直截了当的完美答案。再次感谢。