json - 使用请求模块时是否有结束事件?

标签 json node.js request

我正在使用 npm 上找到的请求模块,我想知道是否有一个可以绑定(bind)的结束事件。我问的原因是因为我正在请求 JSON,如果我在收到响应后尝试直接使用 JSON.parse,则会收到错误。代码看起来像这样。

var parseJSON = function(JSON, cb){

    var parsed = JSON.parse(JSON);
    cb(parsed);

};

request(url, function(error, response, body) {

    parseJSON(body, function(bodyObj){

        // do stuff with bodyObj...

    });
});

尝试执行此操作时出现以下错误...

var parsed = JSON.parse(JSON);
                  ^
has no method 'parse'
    at parseJSON (/home/stephen/Desktop/redditjs/reddit.js:31:20)
    at Requester.collector [as _callback] (/home/stephen/Desktop/redditjs/reddit.js:43:5)
    at Request.init.self.callback (/home/stephen/node_modules/request/main.js:122:22)
    at Request.EventEmitter.emit (events.js:99:17)
    at Request.<anonymous> (/home/stephen/node_modules/request/main.js:661:16)
    at Request.EventEmitter.emit (events.js:126:20)
    at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/home/stephen/node_modules/request/main.js:623:14)
    at IncomingMessage.EventEmitter.emit (events.js:126:20)
    at IncomingMessage._emitEnd (http.js:366:10)
    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23

最佳答案

问题在于您正在覆盖全局 JSON 对象。

这会很好地工作:

var parseJSON = function(MyJSON, cb){

    var parsed = JSON.parse(MyJSON);
    cb(parsed);

};

关于json - 使用请求模块时是否有结束事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13758096/

相关文章:

json - 无法使用 gem,因为 json 2.1.0 已激活,但 gem 需要 1.8.6

node.js - npm WARN : cannot run in wd ghost@0. 7.4 npm 安装 semver

Node.js/Express.js 从请求中删除用户,将其从数据库中删除

javascript - 如何向客户端设置 CORS header

C# 转换 Unicode 字符

javascript - 如何在 Javascript 中格式化 JSON 日期?

mysql - 1 秒内有如此多的请求更新一条特定数据记录

android - react native Android 'Network Request failed'

mysql - 如何将 JSON 数据添加或合并到现有 MySQL 行的 JSON 字段中?

android - 后端的选择?