Node.JS实战42:又一高端操作:API HOOK。

API HOOK放在任意传统开发语言当中,都是高端操作。而且用途很广泛。
在这里插入图片描述
在Node.JS中,也可以实现API HOOK。

且看代码:

var old_console_log = console.log;
console.log = function(msg){
    old_console_log("\u001b[32m" + msg +"\u001b[0m");
}

var old_console_error = console.error;
console.error = function(msg){
    old_console_error("\u001b[31m" + msg +"\u001b[0m");
}
console.log("this is log");
console.error("this is error");

代码解析:

代码中实现了console.log()和console.error()两个方法的HOOK,并且应用了上一文中介绍过的给文字变色技术,给log()文字着绿色、给error()文字着红色。

当运行时,效果如下:

这两个方法太多简单?

好的,再来一例:

var fs = require("fs");
var old_fs_exits = fs.exists;
fs.exists = function(path,callback){
    console.log("fs.exit called");
    old_fs_exits(path,callback);
}

fs.exists(__dirname + '/test41.js', function (exists) {
    var retTxt = exists ? retTxt = '文件存在' : '文件不存在';
    console.error(retTxt);
});

代码解析:

HOOK掉fs.exits()方法。当此方法被调用时,会额外的显示一句:fs.exit called。

执行效果如下:
在这里插入图片描述

Node.JS的API HOOK技术,你GET了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值