首页 文章

Buffer有比较方法吗?

提问于
浏览
0

我正在阅读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 回答

  • 1

    该教程站点使用Node v0.10,它非常陈旧,甚至不支持教程本身使用的方法!

    该代码在当前版本的Node,v4.4.3以及任何其他最新版本中运行良好 . compare() 的相关文档在这里:https://nodejs.org/api/buffer.html#buffer_buf_compare_otherbuffer

    顺便说一句,您可能希望停止使用 new Buffer() 来支持更新的Buffer.from() API . 据说这可以提高代码安全性 .

相关问题