Express и Mongo DB - невозможно использовать объект обратного вызова, если не используется весь элемент - PullRequest
0 голосов
/ 16 января 2019

Я работал над приложением и только что столкнулся с проблемой, когда я вызываю базу данных с токеном сеанса, который затем должен дать мне идентификатор пользователя, который работает нормально. Проблема в том, что возвращаемый токен находится в объекте и имеет несколько свойств, но, например, когда я перехожу к пользователю token.id, он возвращает неопределенное значение ...

Я пытался сохранить это в переменной и использовать его со вторым вызовом для пользователя. Не повезло с этим!

app.get("/api/account/getProfile", (req, res) => {
    // Get the token
    const { query } = req;
    const { token } = query;
    var data = {};
    UserSession.find(
      {
        _id: token,
        isDeleted: false
      },
      (err, sessions) => {
        if (err) {
          console.log(err);
          return res.send({
            success: false,
            message: "Error: Server error"
          });
        }

        if (sessions.length != 1) {
          return res.send({
            success: false,
            message: "Error: Invalid"
          });
        } else {
          User.findById(sessions.userId, function(err, userData) {
            doSomething();
            return res.send({
              success: true,
              message: "Good"
            });
          });
        }
      }
    );
  });

Я ожидаю, что UserSession.find вернет токен, который он делает правильно, однако User.findById, sessions.userId возвращает неопределенное значение, но когда я регистрирую переменную сессий, я получаю в консоли следующее:

[ { userId: '5c3f31305f5d3ad718d83ab6',
    timestamp: 2019-01-16T10:36:51.899Z,
    isDeleted: false,
    _id: 5c3f313f5f5d3ad718d83ab7,
    __v: 0 } ]

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...