IT関連雑記帳

IT関連の話をつらつらと

puppeteerのコードをrequest-promiseからaxiosに置き換えました

自宅のPCにSSDを増設したら、機嫌を損ねたのかHDDの調子が悪くなりましてフォーマットしたのですよ。で、そこには開発環境が入っていたのでnodeやpuppeteerを再設定。動作確認してみたら、こんなエラーが発生。

あまり詳しくないので環境を作り直したりしてみたんだけど一向に直らず。調べていたら、どうやらrequest-promiseが非推奨になったらしい……。どうしたらいいのか更に調べていたら、axiosというものが見つかったので、コードを置き換えました。

await axios({
	method: 'get',
	url: targetFile,
	responseType: 'arraybuffer',
	'content-type': 'audio/mpeg'
})
	.then(function (response){
		fs.writeFileSync(targetFilename, response.data, 'binary');
	});

これだけでした。content-typeの指定が必要かどうかは分かってないですが、たぶん無くても大丈夫な気がする。

ただ、responseTypeをarrayBufferと書いていたらバイナリーデータが上手くダウンロードできなかったです。arraybufferじゃないとダメらしいですね。

とりあえずまた動くなったようになったので良かった。今まで作った他のコードもrequest-promiseのままだから、直した方がいいですかね。使う事は無さそうだけど。