Ich habe diesen Fehler, wenn ich meinen Code in node.js kompiliere. Wie kann ich ihn beheben?
RefernceError: Abrufen ist nicht definiert
Dies ist die Funktion, die ich mache. Sie ist für die Wiederherstellung von Informationen aus einer bestimmten Filmdatenbank verantwortlich.
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
quelle
quelle
fetch
ist keine Standard-Nodejs-Methode - Sie brauchennode-fetch
fetch()
wurde für den Browser entwickelt und dann in einem Drittanbieter-Modul, das Sie anscheinend vermissen, auf node.js zurückportiert. Dierequest()
oderrequest-promise()
Bibliothek ist nativer für node.js erstellt und unterstützt eine viel größere Auswahl an Optionen für node.js, einschließlich Streams, zig Authentifizierungsmethoden usw.Antworten:
Die Abruf-API ist in Node nicht implementiert.
Sie müssen dafür ein externes Modul wie Node-Fetch verwenden .
Installieren Sie es wie folgt in Ihrer Node-Anwendung
Fügen Sie dann die folgende Zeile oben in die Dateien ein, in denen Sie die Abruf-API verwenden:
quelle
var
ist veränderbar, ich würde empfehlen, dassconst
stattdessen verwendet werden sollte ...Wenn es mit einem globalen Bereich zugänglich sein muss
Dies ist eine schnelle, schmutzige Lösung. Versuchen Sie, die Verwendung im Produktionscode zu eliminieren.
quelle
fetch
und die verfügbaren Methoden automatisch zu vervollständigen. Einverstanden, dass es in der Produktion vermieden werden sollte, aber sehr hilfreich für lokale Entwickler!Sie können Cross-Fetch von @lquixada verwenden
Installieren
Verwendung
Mit Versprechungen:
Mit async / warte:
quelle
ReferenceError: fetch is not defined
Fehlers vonamazon-cognito-identity-js
.Für diejenigen, die auch Typoskript auf Node-Js verwenden und eine
ReferenceError: fetch is not defined
Fehlermeldung erhaltennpm install
diese Pakete:Dann schließen Sie ein:
quelle
amazon-cognito-identity-js
ist für diese Frage nicht relevant und muss nicht installiert werden, um diesen Fehler zu beheben. Es ist auch nicht mit Typoskript verwandt.Sie müssen das
isomorphic-fetch
Modul für IhrNode
Projekt verwenden, da esNode
noch nicht enthältFetch API
. Um dieses Problem zu beheben, führen Sie den folgenden Befehl aus:Verwenden Sie nach der Installation den folgenden Code in Ihrem Projekt:
Hoffe diese Antwort hilft dir.
quelle
Am besten ist die Axios-Bibliothek zum Abrufen. Verwenden Sie es
npm i --save axios
für die Installation und verwenden Sie es wie Fetch. Schreiben Sie einfach Axios anstelle von Fetch und erhalten Sie dann eine Antwort in then () .quelle
Node.js hat die fetch () -Methode nicht implementiert, aber Sie können eines der externen Module dieser fantastischen Ausführungsumgebung für JavaScript verwenden.
In einer der obigen Antworten wird "Node-Fetch" zitiert, und das ist eine gute Wahl.
Installieren Sie dieses Modul in Ihrem Projektordner (dem Verzeichnis, in dem Sie die .js-Skripte haben) mit dem folgenden Befehl:
npm i node-fetch --save
Verwenden Sie es dann als Konstante in dem Skript, das Sie mit Node.js ausführen möchten.
const fetch = require ("node-fetch");
quelle
Dies ist das verwandte Github- Problem. Dieser Fehler hängt mit der Version 2.0.0 zusammen. Sie können ihn beheben , indem Sie einfach auf Version 2.1.0 aktualisieren. Du kannst rennen
npm i [email protected]
quelle
Folgendes funktioniert für mich in Node.js 12.x:
So initialisieren Sie die Dropbox-Instanz:
um zB einen Inhalt hochzuladen (eine in diesem Fall verwendete asynchrone Methode):
quelle