修改模块但不是通过黑客攻击

时间:2014-11-26 16:20:14

标签: node.js

我正在使用通过npm安装的node.js模块。

我想知道修改节点模块功能的最佳方法是什么。 让我们说我有一个名为Handler的模块,并且有一个名为foo的方法,它接受一个请求对象并返回一个响应对象。

1)如果我想在回复之前对回复做些什么怎么办。

我只是修改代码本身吗?

有没有关于此的文章?

更新 -

此外,原始函数正在修改一些未返回的对象,但我也想修改它们。我该怎么处理?

1 个答案:

答案 0 :(得分:1)

我在这里要做的是在函数周围创建一个包装器,然后在那里进行更改。如果不清楚,请参考以下代码:

var myModule = require('myModule');
var myModuleFunc = myModule.myFunc;
myModule.myFunc = function() {
    var res = myModuleFunc.apply(this, arguments); // call the function, and pass along context and arguments
    res = transform(res); // whatever you do the response
    return res;
};