【发布时间】:2014-04-25 20:42:01
【问题描述】:
所以我正在使用一个 api 包装器包,它再次使用请求来处理 api 请求。在大多数设置中都可以正常工作。但我想在 node-webkit 环境中使用该包并使用 XHR 代替请求模块。如果我重写模块,它将与 API 一起工作并且可以工作。但我不想这样做,因为更新舒适。所以分叉不是我的选择。是否可以在不替换模块的情况下替换模块中的一个功能。
var request = require('request');
var makeRequest = function(path, args, secure, callback, encoding) {
var maxlen = 2048;
var path = buildUrl(path, args);
if (path.length > maxlen) {
throw new Error("Request too long for google to handle (2048 characters).");
}
var options = {
uri: (secure ? 'https' : 'http') + '://some.api.com' + path
};
if (encoding) options.encoding = encoding;
if (config('proxy')) options.proxy = config('proxy');
if (typeof callback === 'function') {
request(options, function (error, res, data) {
if (error) {
return callback(error);
}
if (res.statusCode === 200) {
return callback(null, data);
}
return callback(new Error("Response status code: " + res.statusCode), data);
});
}
return options.uri;
};
module.exports = makeRequest;
所以现在我想在不更改 makeRequest 的情况下替换整个 makeRequest 函数的请求函数。所以基本上我想覆盖这个函数。
编辑:添加代码示例。
【问题讨论】:
-
如果您提供一些代码(例如您要修补的功能)会更容易回答
标签: javascript node.js package npm