【问题标题】:What does response.on mean? Node.jsresponse.on 是什么意思?节点.js
【发布时间】:2016-08-08 03:01:58
【问题描述】:

我在处理 Node.js http 请求时遇到问题。 (如果我无法弄清楚,我稍后会问一个更大的问题)。

我有我修改的代码和一个示例,但我不明白 response.on 的含义。在 Node.js (Anatomy of an HTTP Transaction) 中阅读有关 http 的更多信息时,我看不到人们使用带有“response.on”的示例。我想我知道,但我想澄清一下。哦,我也在使用 Express.js。

谢谢

下面是我用来尝试调用我需要响应的 BART api 的代码。

...
// Real Time Departure from a given station
router.route('/departTimeStation')
.get(function(req, res) {
    vCmd = 'etd';
    vOrig = req.query.vOriginStation;
    vDir = 'n'; // [NOTE] - 'n' or 's', north or south, OPTIONAL
    vPlat = 1; // [NOTE] - 1 to 4, number of platform, OPTIONAL

    var xoptions = {
        host: 'api.bart.gov',
        path: '/api/etd.aspx?cmd=' + vCmd + '&orig=' + vOrig + '&key=' + config.bart.client
    };

    var xcallback = function(response) {

        response.on('data', function(chunk) {
            vParsed += chunk;
        });

        response.on('end', function() {
            parseString(vParsed, function(err, result) {
                vShow = JSON.stringify(result);
                vTemp = result;
            });
        });
    };
    http.request(xoptions, xcallback).end();
    return res.send (vTemp)
});
...

【问题讨论】:

标签: javascript node.js


【解决方案1】:

response.on 可以处理response 生命周期中发生的一些“事件”,

您上面的两个是response.on('data'...),这是您获取数据的时间 response.on('end'...) 在响应的末尾,就这么简单!

关于响应的节点文档:https://nodejs.org/api/http.html#http_class_http_incomingmessage

【讨论】:

  • 感谢您提供该链接。我还没有阅读提到这一点的文档。
【解决方案2】:

response.on 是一个函数,或者更确切地说是方法,因为它是一个属性。

【讨论】:

猜你喜欢
  • 2017-01-12
  • 2011-06-18
  • 2015-11-25
  • 2015-04-11
  • 2023-03-06
  • 2020-03-04
  • 2016-08-17
  • 2021-10-02
  • 1970-01-01
相关资源
最近更新 更多