承诺是在路线中创建的,但未从中返回

时间:2018-05-08 10:25:21

标签: node.js express promise bluebird knex.js

我试图找到一个解决方案,我得到了这个警告,但没有一个建议的方法对我有效。我不想禁用此警告,因为我认为这个警告是有原因的,但我无法弄清楚这里有什么真正的优惠。

我在运行express的node.js服务器上定义了以下路由:

// GET all items
router.get('', helpers.loginRequired, function(req, res) {
  debug("Get all items");
  return knex.select('*').from('routes')
    .then((routes) => {
      res.send(routes);
      return null;
    })
    .catch((err) => {
      debug("error getting routes");
      res.send({ error: "Fehler beim Laden" });
      return null;
    });
});

我的中间件loginRequired根本不使用任何承诺

function loginRequired(req, res, next) {
    if (!req.user) {
        req.flash('loginMessage', 'Du musst eingeloggt sein!');
        req.session.redirectTo = req.path;
        return res.redirect('/');
    } else {
        return next();
    }
}

我使用knex访问我的数据库,这会产生许可。

每当我点击路线时,都会收到以下警告:

(node:10568) Warning: a promise was created in a handler but was not returned fr
om it, see *link*
    at Function.Promise.attempt.Promise.try (C:\Users\qxr1088\Desktop\Privat\GPS
\bibis-tracker\node_modules\bluebird\js\release\method.js:29:9)

正如你所看到我试图添加"返回null;" bluebird建议的陈述,但这不能解决问题。

0 个答案:

没有答案