그래서 api 요청에 대한 요청을 다시 사용하는 api wrapper 패키지를 사용하고 있습니다. 대부분의 설정에서 잘 작동합니다. 하지만 노드 - 웹킷 환경에서 해당 패키지를 사용하고 요청 모듈 대신 XHR을 사용하고 싶습니다. 그것은 API와 함께 작동하고 모듈을 다시 작성하면 작동합니다. 하지만 나는 업데이트의 편안함 때문에 그것을하고 싶지 않습니다. 포킹은 나를위한 선택 사항이 아닙니다. 모듈을 교체하지 않고 모듈의 한 기능을 대체 할 수 있습니까?공용 npm 패키지의 기능을 바꿉니다
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 기능을 대체하려고합니다. 그래서 기본적으로이 함수를 덮어 쓰고 싶습니다.
편집 : 코드 예제를 추가하십시오.
일부 코드 (예 : 패치 할 기능)를 제공하면 대답하기가 쉽습니다. – hereandnow78