NodeJS承诺永不返回(Mongoose / MongoDB)

时间:2019-02-08 05:33:10

标签: node.js mongodb mongoose

我一直在努力与一个promise功能,试图找出为什么它无法解决的几个小时。在某个时候,我被引导去研究猫鼬的问题,但在其他地方似乎做对了,所以我对此表示怀疑。

以下功能似乎卡住的部分位于user.save()。它获取哈希密码,创建模型(通过日志记录进行确认),然后尝试返回user.save() Promise(这是猫鼬模型,它具有一个save()函数,该函数返回Promise),但是我不确定之后是否会发生任何事情。我已经在return user.save()许诺之后同时登录了then / catch和它们都没有被调用。 createUser返回的承诺永远无法解决。

我希望我能对下面的内容有更多的了解,看看我可能在哪里没有正确编写此诺言链,否则我会偏离我原来的理论,那是猫鼬问题。

module.exports = {
  createUser: function () {
    const password = Faker.internet.password()
    return Passwords
      .hash(password)
      .then((hashedPassword) => {
        const user = new UserModel({
          firstName: Faker.name.firstName(),
          lastName: Faker.name.lastName(),
          username: Faker.internet.userName(),
          email: Faker.internet.email(),
          displayName: 'bs',
          passwordHash: hashedPassword
        })
        return user.save()
      })
      .then(doc => ([doc, password]))
  }
}

还有密码类:

class Passwords {
  hash (password) {
    return new Promise(function (resolve, reject) {
      try {
        resolve(bcrypt.hashSync(password, BCRYPT_SALT_ROUNDS))
      } catch (err) {
        console.error(err)
        reject(err)
      }
    })
  }
}

0 个答案:

没有答案