【问题标题】:res.status is undefined within a promise functionres.status 在 promise 函数中未定义
【发布时间】:2018-12-16 11:26:12
【问题描述】:

这是我在名为“queries.js”的文件中的函数,用于查询数据库并将结果作为 json 对象返回

function getUsers(req,res) {
  db.any('select * from table')
    .then(function(response) {
      console.log(response); \\prints out JSON results directly from database
      res.status(200)
        .json({
          status: 'success',
          data: response,
          message: 'Retrieved all data'
      });
  })
  .catch(function (err) {
    console.log(err);
});

module.exports = {getUsers:getUsers};

这是我的快速路由,应该将从上述函数返回的数据发送到允许我从前端获取它的 URL。

db = require('./queries');

app.get('', function(res,req) {
  db.getUsers();
});

我遇到的问题是,在第一个函数中“res”是未定义的,所以当我尝试调用 res.status 时,它会抛出一个错误并且不会继续执行其余的代码应该将数据发送到端点。

关于为什么 res 在 promise 的上下文中未定义的任何想法?

【问题讨论】:

    标签: express promise routes


    【解决方案1】:

    getUsers 中传递参数可能会有所帮助。

    db = require('./queries');
    
    app.get('', function(res,req) {
      db.getUsers(req,res);
    });
    

    【讨论】:

    • 这很快!很高兴我错过了一些愚蠢的东西,而不是逻辑上的缺陷。我会尽快接受你的回答。谢谢!
    • 我不知道你的项目。但如果可以的话,我真的建议使用 typecipt。 TS 将显着减少您的调试时间。这样的错误会立即被捕获。
    猜你喜欢
    • 2020-10-03
    • 2018-07-19
    • 1970-01-01
    • 2021-06-03
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2017-10-31
    相关资源
    最近更新 更多