【问题标题】:res.send() Not Working When Inside of a Callbackres.send() 在回调内部时不起作用
【发布时间】:2021-09-02 09:53:49
【问题描述】:

我正在使用 express 并尝试一个简单的 GET 查询我的数据库。如果从回调中发送,客户端永远不会收到来自服务器的字符串;意思是,下面的代码永远不会发回字符串:

app.get('/search', function (req, res) {
    ul.readTable(req.query.q, (stringToReturn) => {
        res.send(stringToReturn);
    })
}

让我特别困惑的部分是,如果我将 res.send() 放在回调之外,并发送一些虚拟字符串,它会成功发送。所以这段代码确实可以发送一个字符串:

app.get('/search', function (req, res) {
    ul.readTable(req.query.q, (stringToReturn) => {
    })
    res.send("dummy string");
}

显然这没什么用,因为它无法保存我想要发回的数据,但这确实意味着不应该有任何其他差异。我尝试从回调中发送回一个虚拟字符串,但这也未能发送。我认为这意味着问题在于 res.send() 在回调中,但我已经看到很多其他人在回调中发回数据的例子。

【问题讨论】:

  • 尝试添加return res.send("dummy string");
  • 我将它添加到回调中,但仍然遇到同样的问题

标签: javascript jquery node.js express


【解决方案1】:

您是否确认您的回调正确触发? 您的代码在当前上下文中看起来不错,这会让我相信未调用回调有问题。

【讨论】:

  • 我已将 console.log() 放入回调中,它似乎打印出一切正常,它也返回了预期的信息。编辑:现在似乎回调没有正确触发,尽管是一个不相关的问题。谢谢
  • res.send() 发送什么?它是抛出任何类型的错误,还是收到undefined,或者根本没有发送任何东西?
  • 它只是没有发送,尽管我相信 Bryce 是正确的,它是回调本身的问题。
猜你喜欢
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2020-03-24
  • 2019-03-25
相关资源
最近更新 更多