现象
用node.js写的程序中,有如下语句:
var buf = new Buffer(myBase64Str, 'base64');
其中,
myBase64Str
是已有的一个base64字符串。这个语句的本意是用myBase64Str
给buf变量赋初值。
但执行中后台有如下报警信息:
(node:23872) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
尽管执行结果还是对的,但有报警毕竟不太好,力图还是解决掉。
分析
参见文章:https://www.nodeapp.cn/deprecations.html#deprecations_dep0005_buffer_constructor
其中说明,Buffer()和 new Buffer() 构造函数已经被废弃了。建议改用如下函数:
Buffer.alloc(), Buffer.allocUnsafe(),Buffer.from()等函数
解决方案
将语句改为如下方式,报警就消失了:
var buf = Buffer.from(myBase64Str, 'base64');