Fetch API
#JavaScript #Node.js
Node.js で AWS SDK を利用しようとしたら、以下のようなエラーが出た。
code:txt
XMLHttpRequest is not defined
問題は、Node.js 環境にはブラウザ環境にある Fetch API (window.fetch) が存在していないことらしい? (適当を言ってるかもしれない...)
兎に角、Node.js 環境で動作する Fetch API を使う必要がある。
https://github.com/bitinn/node-fetch
これをライブラリ内からでも利用できるようにグローバルスコープにおく。
code:typescript
import fetch from 'node-fetch'
(global as any)'fetch' = fetch
すると、今度は別のエラーがでた。
code:txt
unable to locate global object
これは Webpack との兼ね合いの問題らしい。デプロイの target を node に設定したらうまくいった。
code:.js
module.exports = {
target: 'node',
...
}
https://github.com/bitinn/node-fetch/issues/450#issuecomment-386889458