環境
$ node --version
v12.16.1
経緯
Bufferを使って、encodeしたかった時にDeprecationWarningが出てしまったため対処
encode自体は問題なくできるが、nodejsのドキュメント的には対応した方が良さそう
test.js
constbefore='hogehoge'// これをbase64でencodeしたいconstbuffer=newBuffor(before)constafter=buffer.toString('base64')console.log(after)↓
$ node test.js
aG9nZWhvZ2U=(node:631)[DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
やったこと
new Bufferの書き方を修正した
test.js
constbefore='hogehoge'constafter=Buffer.from(before).toString("base64");console.log(after)↓ 無事エラーが消えた!
$ node test.js
aG9nZWhvZ2U=ちなみに、decodeはこちら
test.js
constafter='aG9nZWhvZ2U'constbefore=Buffer.from(after,'base64').toString()console.log(before)↓
$ node test.js
hogehoge
参考
https://stackoverflow.com/questions/23097928/node-js-throws-btoa-is-not-defined-error