我正在阅读NodeJS教程,我已经到了this页面 .
Buffer对象的比较方法有一个示例代码:
var buffer1 = new Buffer('ABC');
var buffer2 = new Buffer('ABCD');
var result = buffer1.compare(buffer2);
if(result < 0) {
console.log(buffer1 +" comes before " + buffer2);
}else if(result == 0){
console.log(buffer1 +" is same as " + buffer2);
}else {
console.log(buffer1 +" comes after " + buffer2);
}
抛出这个:
执行程序.... $ node main.js /web/com/1460883529_55644/main.js:3 var result = buffer1.compare(buffer2); ^ TypeError:对象ABC在Object处没有'compare'方法 . (/web/com/1460883529_55644/main.js:3:22)在Module的Object.Module._extensions..js(module.js:474:10)的Module._compile(module.js:456:26) . 在启动时在Function.Module.runMain(module.js:497:10)的Function.Module._load(module.js:312:12)处加载(module.js:356:32)(node.js:119:16) )在node.js:929:3
奇怪的是,在跟踪中,对象被称为 ABC
而不是 buffer1
,并且根据跟踪没有 compare
方法 . 试图澄清 compare
方法的例子使我感到困惑 . 有人可以解释这里发生了什么吗
1 回答
该教程站点使用Node v0.10,它非常陈旧,甚至不支持教程本身使用的方法!
该代码在当前版本的Node,v4.4.3以及任何其他最新版本中运行良好 .
compare()
的相关文档在这里:https://nodejs.org/api/buffer.html#buffer_buf_compare_otherbuffer顺便说一句,您可能希望停止使用
new Buffer()
来支持更新的Buffer.from() API . 据说这可以提高代码安全性 .