尽管成功回调,但 Express API 超时

Posted

技术标签:

【中文标题】尽管成功回调,但 Express API 超时【英文标题】:Express API timeout despite success callback 【发布时间】:2017-06-14 22:42:54 【问题描述】:

我有一个快速 API:

var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.post("/adapter/mail", function(request, response) 

    var body = request.body;
    var id = body.id;
    var params = id: id;

    Parse.Cloud.run("email", params, 
        success: function(e) 
            console.log("api: success");
            respone.status(200).send("e");
        ,
        error: function(e) 
            console.log("api: error: " + JSON.stringify(e));
            response.status(500).send(e);
        
    );
);

调用 API 调用 Parse Cloud 代码:

Parse.Cloud.define("email", function(request, response) 
    console.log(JSON.stringify(request, null, 4));
    response.success("ok");
);

在控制台中,我看到console.log("api: success"); 被正确执行,但 API 请求并没有结束,尽管回调成功,它还是超时了。

当 Cloud Code 返回 response.error("error"); 而不是 response.success("ok"); 时,请求不会超时,而是立即结束。

为什么请求成功后会超时?

【问题讨论】:

您的代码中有一个错字respone.status(200).send("e"); 在“响应”中缺少一个“s”。 @JulianGoacher 谢谢,解决了。花了我 1 小时,我想该睡觉了:-) 【参考方案1】:

您的回调中似乎缺少一个“s”

respon"s"e.status(200).send("e");

【讨论】:

以上是关于尽管成功回调,但 Express API 超时的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Express Checkout API 回调

JEST:“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调。”,尽管它已经配置

尽管 Access-Control-Allow-Origin 设置为 express ,但请求标头字段 Authorization

如何增加 Postman 客户端请求超时

Express api res.jsonp 返回双重回调

Passportjs 成功回调从未被调用