Saya memiliki kesalahan ini ketika saya mengkompilasi kode saya di node.js, bagaimana saya bisa memperbaikinya?
RefernceError: fetch tidak didefinisikan
Ini adalah fungsi yang saya lakukan, bertanggung jawab untuk memulihkan informasi dari basis data film tertentu.
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);
});
}
javascript
node.js
jasa1704
sumber
sumber
fetch
bukan metode simpuljs standar - yang Anda butuhkannode-fetch
fetch()
dirancang untuk browser dan kemudian kembali-porting ke node.js di modul pihak ketiga yang tampaknya Anda hilang. Therequest()
ataurequest-promise()
perpustakaan lebih native dibangun untuk node.js dan mendukung berbagai lebih luas pilihan untuk node.js termasuk aliran, metode otentikasi miliaran, dll ...Jawaban:
The mengambil API tidak dilaksanakan di Node.
Anda perlu menggunakan modul eksternal untuk itu, seperti ambil-simpul .
Instal di aplikasi Node Anda seperti ini
lalu letakkan baris di bawah ini di bagian atas file tempat Anda menggunakan API ambil:
sumber
var
dapat diubah, saya akan merekomendasikan yangconst
harus digunakan sebagai gantinya ...Jika harus dapat diakses dengan cakupan global
Ini adalah perbaikan kotor cepat, cobalah untuk menghilangkan penggunaan dalam kode produksi.
sumber
fetch
dan melengkapi metode yang tersedia secara otomatis. Setuju bahwa itu harus dihindari dalam produksi, tetapi sangat membantu bagi pengembang lokal!Anda bisa menggunakan cross-fetch dari @lquixada
Install
Pemakaian
Dengan janji:
Dengan async / menunggu:
sumber
ReferenceError: fetch is not defined
kesalahan dariamazon-cognito-identity-js
.Bagi mereka yang juga menggunakan naskah pada node-js dan mendapatkan
ReferenceError: fetch is not defined
kesalahannpm install
paket-paket ini:Kemudian termasuk:
sumber
amazon-cognito-identity-js
tidak relevan dengan pertanyaan ini dan tidak perlu dipasang untuk menyelesaikan kesalahan ini. Ini juga tidak terkait dengan naskah.Anda harus menggunakan
isomorphic-fetch
modul untukNode
proyek Anda karenaNode
belum mengandungFetch API
. untuk memperbaiki masalah ini jalankan perintah di bawah ini:Setelah instalasi gunakan kode di bawah ini dalam proyek Anda:
Semoga jawaban ini membantu Anda.
sumber
Yang terbaik adalah perpustakaan Axios untuk mengambil. gunakan
npm i --save axios
untuk installng dan gunakan seperti fetch, cukup tulis axios alih-alih fetch lalu dapatkan respons di () .sumber
Node.js belum menerapkan metode fetch (), tetapi Anda dapat menggunakan salah satu modul eksternal dari lingkungan eksekusi yang fantastis ini untuk JavaScript.
Dalam salah satu jawaban di atas, "ambil simpul" dikutip dan itu pilihan yang baik.
Di folder proyek Anda (direktori tempat Anda memiliki skrip .js) instal modul itu dengan perintah:
npm saya mengambil simpul --simpan
Kemudian gunakan sebagai konstanta dalam skrip yang ingin Anda jalankan dengan Node.js, sesuatu seperti ini:
const fetch = butuhkan ("node-fetch");
sumber
Ini adalah masalah github terkait Bug ini terkait dengan versi 2.0.0, Anda dapat menyelesaikannya dengan hanya memutakhirkan ke versi 2.1.0. Anda bisa lari
npm i [email protected]
sumber
Berikut ini berfungsi untuk saya di Node.js 12.x:
untuk menginisialisasi instance Dropbox:
untuk misalnya mengunggah konten (metode asinkron yang digunakan dalam kasus ini):
sumber