1、错误描述
> y.copy(0,10);
TypeError: argument should be a Buffer
at TypeError (native)
at repl:1:3
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
>
2、错误原因
buffer.copy(Buffer对象,开始写入处);
但是这里Buffer对象写成了0
3、解决办法
> y=Buffer('wo ai ni');
<Buffer 77 6f 20 61 69 20 6e 69>
> o=Buffer(128);
<Buffer 00 00 00 00 01 00 00 00 80 61 37 02 00 00 00 00 02 00 00 00 00 00 00 00
88 94 43 00 00 00 00 00 01 00 00 00 00 00 00 00 e8 aa 43 00 00 00 00 00 02 00 ..
. >
> o.fill(0);
<Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
. >
> o;
<Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
. >
> y.copy(0,10);
TypeError: argument should be a Buffer
at TypeError (native)
at repl:1:3
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
> y.copy(o,10);
8
> o;
<Buffer 00 00 00 00 00 00 00 00 00 00 77 6f 20 61 69 20 6e 69 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
. >
>
本文通过一个具体的错误案例介绍了Node.js中Buffer对象的copy方法使用不当导致的问题及解决办法。首先展示了由于参数设置错误引发TypeError的具体情况,接着详细解释了正确的参数设置,并给出了完整的修正示例。
31万+

被折叠的 条评论
为什么被折叠?



