我试图覆盖nodejs的本机函数并使其成为全局函数。 (例如:console / require)
以下是我的方法:
M1 使用全局
myConsole.js
function myConsole() {
var nativeConsole = console;
// ... some code
}
myConsole.log = function() {
nativeConsole.log('It works!');
}
global.console = myConsole; // <-- HERE
index.js
require('./myConsole.js');
require('./test.js');
test.js
console.log('Not working. :(');
这失败了。
M2 直接分配
myConsole.js
function myConsole() {
var nativeConsole = console;
// ... some code
}
myConsole.log = function() {
nativeConsole.log('It works!');
}
*console = myConsole; // <-- HERE
index.js
require('./myConsole.js');
require('./test.js');
test.js
console.log('Not working. :(');
这也失败了。
有谁知道如何覆盖它?感谢。
添加:我没有c ++节点模块的经验,是否可以覆盖原生代码?
答案 0 :(得分:0)
在您的示例中,nativeConsole
函数无法访问global.console = myConsole;
变量。这需要改变。我也没有看到全局作业nativeConsole
您可以尝试此操作(可让您访问自定义函数中的function myConsole() {
var nativeConsole = console;
// ... some code
return {
log : function() {
nativeConsole.log('something');
}
}
}
global.console = myConsole;
变量):
HttpEntity entity = response.getEntity();
String resJson = EntityUtils.toString(entity);
System.out.println("**** = " + resJson);
jsonStr = resJson;
JSONTokener jsonParser = new JSONTokener(resJson);
JSONObject itemList = (JSONObject) jsonParser.nextValue();
int total = itemList.getInt("total");
int currentPage = itemList.getInt("currentPage");
JSONArray jsonObjs = itemList.getJSONArray("rows");
String demoUrl = "";
String s = "";
List<String> imageUrlList = new ArrayList<String>();
for (int i = 0; i < jsonObjs.length(); i++) {
JSONObject jsonObj = jsonObjs.getJSONObject(i);
// String id = jsonObj.getInt("id");
String image_name = jsonObj.getString("image_name");
String image_url = jsonObj.getString("image_url");
String image_url1 = jsonObj.getString("image_url1");
String image_url2 = jsonObj.getString("image_url2");
String image_url3 = jsonObj.getString("image_url3");
String image_url4 = jsonObj.getString("image_url4");
String image_url5 = jsonObj.getString("image_url5");
String image_url6 = jsonObj.getString("image_url6");
String price = jsonObj.getString("price");
imageUrlList.add(image_url);
imageUrlList.add(image_url1);
imageUrlList.add(image_url2);
imageUrlList.add(image_url3);
imageUrlList.add(image_url4);
imageUrlList.add(image_url5);
imageUrlList.add(image_url6);