Как сравнить входные данные и документ в mongoDB - PullRequest
1 голос
/ 28 мая 2019

Когда я регистрирую [введите адрес электронной почты / пароль для БД] успешно. Затем я хочу войти. Если ввести [email / pass] == документ в коллекции >>, перейдите на следующую страницу, иначе console.log ['неправильный email / pass']

Я пытаюсь записать код IF / else, но не знаю условия проверки.

Этот код является регистрационной формой

app.post('/register',function(req,res){
    MongoClient.connect(url, function(err, db) {
  if (err) throw err;

  let dbo = db.db("project");
  let myobj = { Email: req.body.email, Password: req.body.psw } ;

  dbo.collection("Register").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log(" document inserted");
    db.close();
  });
});

});

Этот код является логином

app.post('/index',function(req,res){

MongoClient.connect(url, function(err, db) {
  if (err) throw err;

  let dbo = db.db("project");

  let cursor = dbo.collection('Register').find();
   cursor.each(function(err,doc) {
    if (doc == req.body.email && req.body.psw){
      console.log("goto next page");

    }
    else{
      console.log('wrong');
    }

   });
    db.close();
  });
});

Правильный вход и неправильный вход Выход = Неверный

Pls вставьте цикл, проверьте все массивы, пожалуйста.

app.post('/index',function(req,res){

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("project");

  dbo.collection("Register").findOne({}, function(err, result) {

    if (result.Email == req.body.email && result.Password == req.body.psw) {
      console.log("OK");
    }
    else{
      console.log(result.Email && result.Password);
    }
    db.close();
  });
});
});

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Вы должны сравнить отдельные значения, например, так:

if (doc.Email == req.body.email &&  doc.Password == req.body.psw){
  console.log("goto next page");

}
0 голосов
/ 28 мая 2019

Во-первых, вы должны проверить правильность тела запроса, и вы должны выполнить запрос fineone вместо выполнения for-loop и проверки.см. исправленное ниже:

app.post("/index", function(req, res) {
  let {
    email,
    psw
  } = req.body;
  if (email && psw) {
    console.log("wrong credentials");
    return;
  } else {
    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      let dbo = db.db("project");
      let data = dbo.collection("Register").findOne({
        Email: email,
        Password: psw
      });
      if (data) {
        console.log("goto next page");
      } else {
        console.log("wrong");
      }
      db.close();
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...