Tag: fakeweb

用EventEmitter覆盖http.request

我正在使用以下function覆盖Node的http.request的fakeweb模块: var old_request = http.request; http.request = function(options, callback){ var rule = match_rule(options); if(rule){ var res = new events.EventEmitter(); res.headers = rule.headers || {'Content-Type': 'text/html'}; return {end: function(){ callback(res); res.emit('data', rule.body || ''); res.emit('end'); } }; } else { return old_request.call(http, options, callback); } }; 我的问题是,我得到的错误:types错误: TypeError: Object #<Object> has no method 'on'从另一个文件中的以下代码: var req […]

如何返回对象而不是string与诺克反应?

当我使用nock存根请求时,即使使用'Content-Type': 'application/json'也会返回String结果而不是Object 'Content-Type': 'application/json' : var response = { success: true, statusCode: 200, body: { "status": "OK", "id": "05056b27b82", } }; Test.BuildRequest(); Test.SendRequest(done); nock('https://someapi.com') // also tried // .defaultReplyHeaders({ // 'Content-Type': 'application/json', // 'Accept': 'application/json' // }) .post('/order') .reply(200, response.body, 'Content-Type': 'application/json', 'Accept': 'application/json'); 检查: console.log(put.response.body); console.log(put.response.body.id); 输出: {"status":"OK","id":"05056b27b82"} undefined 在代码中,我使用request模块返回Object与相同的数据。 我也试过sinon (不适用于我)和fakeweb但得到了同样的问题。 我的代码 ,我试图testing: […]