承诺已创建,但未从中返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了承诺已创建,但未从中返回相关的知识,希望对你有一定的参考价值。

我试图绕过这个......但无论我把回归放在哪里,我都会得到这个警告......

警告:在home / app / server / node_modules / express / lib / router / index.js:280:7的处理程序中创建了一个promise但是没有从它返回服务器at ._doFetch(/home/app/server/node_modules/bluebird/js/release/method.js:13:13)

module.exports = {
    getUser: (req, res) => {
        var found_user = User.query({where: {email: req.body.email}, orWhere: {username: req.body.email}}).fetch()

        found_user.then(user => {
            if (user) {
                res.status(200).json(user)
            } else {
                res.status(422).json(new error.ERROR_422("No user found under username/email"));
            }
        })
        .catch(err => {
            console.log(err)
            res.status(500).json(new error.ERROR_500(err));
        })

    }

我正在使用Bookshelf.js,我应该回到这里?

答案

您必须从导出的方法返回承诺,因此可以在外部处理承诺。尝试将其更改为类似的内容

module.exports = {
  getUser: (req, res) => {
    var found_user = User.query({where: {email: req.body.email}, orWhere: {username: req.body.email}}).fetch()

    found_user.then(user => {
      if (user) {
        res.status(200).json(user)
      } else {
        res.status(422).json(new error.ERROR_422("No user found under username/email"));
      }
    })
    .catch(err => {
        console.log(err)
        res.status(500).json(new error.ERROR_500(err));
    })

    return found_user // <<<--- Add this
  }

以上是关于承诺已创建,但未从中返回的主要内容,如果未能解决你的问题,请参考以下文章

返回嵌套承诺但未找到响应

XMPP 服务器:已创建帐户但未保存属性

GeoIP 已安装/已加载,但未返回记录

Redux:动作已成功调度,但未创建状态

服务似乎已创建,但未创建

应用程序在 Apple 崩溃但未在测试中