ReferenceError: fetch が定義されていません 質問する

ReferenceError: fetch が定義されていません 質問する

node.js でコードをコンパイルするときにこのエラーが発生します。どうすれば修正できますか?

参照エラー: フェッチが定義されていません

ここに画像の説明を入力してください

これは私が実行している機能であり、特定の映画データベースから情報を回復する役割を担っています。

function getMovieTitles(substr){  
  pageNumber=1;
  let url = 'https://jsonmock.hackerrank.com/api/movies/search/?Title=' + substr + "&page=" + pageNumber;
  fetch(url).then((resp) => resp.json()).then(function(data) {
    let movies = data.data;
    let totPages = data.total_pages;
    let sortArray = [];
    for(let i=0; i<movies.length;i++){
        sortArray.push(data.data[i].Title);
     }
    for(let i=2; i<=totPages; i++){
           let newPage = i;
           let url1 = 'https://jsonmock.hackerrank.com/api/movies/search/?Title=' + substr + "&page=" + newPage;

          fetch(url1).then(function(response) {
              var contentType = response.headers.get("content-type");
              if(contentType && contentType.indexOf("application/json") !== -1) {
                return response.json().then(function(json) {
                  //console.log(json); //uncomment this console.log to see the JSON data.

                 for(let i=0; i<json.data.length;i++){
                    sortArray.push(json.data[i].Title);
                 }

                 if(i==totPages)console.log(sortArray.sort());

                });
              } else {
                console.log("Oops, we haven't got JSON!");
              }
            });

        }
  })
  .catch(function(error) {
    console.log(error);
  });   
}

ベストアンサー1

Node 18より前のバージョンを使用している場合は、フェッチAPIすぐに使えるようには実装されていないので、外部モジュールを使用する必要があります。ノードフェッチ

Nodeアプリケーションに次のようにインストールします

npm install node-fetch

次に、フェッチ API を使用しているファイルの先頭に以下の行を追加します。

import fetch from "node-fetch";

アプリケーションをESM(別名import構文)を使用するように更新できず、CommonJS(別名 )を使用する必要がある場合はrequire、 のv2を使用してくださいnode-fetch。 READMEによると、v2では引き続き重大なバグ修正が行われます

npm install node-fetch@2

そしてこれが機能するでしょう

const fetch = require("node-fetch");

おすすめ記事