Получение ошибок с аутентификацией MongoDB и Express на сервере - NodeJS - PullRequest
0 голосов
/ 15 марта 2020

Я делаю сервер Express, и я настроил его на прием почтовых запросов в "/ login". Сервер сопоставит имя пользователя и пароль с учетной записью пользователя на отдельном сервере mongodb. По какой-то причине я получаю ошибки, когда я пытаюсь войти как существующий пользователь, так и пользователь, который не существует. Я думаю, что это как-то связано с закрытием соединения mongodb перед пост-соединением, но я не могу понять, что мне делать. Я довольно новичок во всем этом, поэтому любая информация будет высоко ценится. Ниже мой код для почтового запроса.

app.post("/login", (req, res) => {
  var user;
  console.log(req.ip, "is attempting login...");
  console.log("Email:", req.body.email);
  console.log("Password:", req.body.password);

  client.connect(function(mongoConnectionError, client) {
    if (mongoConnectionError) {
      console.log("Error", mongoConnectionError);
      res.status(500);
      client.close();
    } else {
      console.log("Connected correctly to mongodb server");

      const db = client.db(dbName);
      const col = db.collection("users");

      col.find({ email: req.body.email }).toArray(function(err, docs) {
        if (err) {
          console.log("Error", err);
        } else {
          console.log("Docs", docs);
          user = docs[0];
        }
        if (user && user.email === req.body.email) {
          console.log(
            "User",
            user.email,
            "found. Attempting authentication of password"
          );
          if (req.body.password === user.password) {
            console.log(
              "Password Authenticated. User",
              user.email,
              "signed in."
            );
            client.close();
            res.status(200).end("Successfully signed in");
          } else {
            console.log(
              "Unauthorized: User",
              user.email,
              "has entered the wrong password"
            );
            client.close();
            res.status(401);
          }
        } else {
          console.log("User does not exist");
          client.close();
          res.status(401).end("User does not exist");
        }
      });
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...