Ich möchte ein paar JSON-Dateien in meinen JavaScript-Code aufnehmen, die sich im selben Verzeichnis wie meine JavaScript-Quelldatei befinden.
Wenn ich eine andere JavaScript-Datei einfügen wollte, konnte ich sie einfach verwenden require
. Jetzt benutze ich readFileSync
und __dirname
bekomme den JSON, was ich für einen hässlichen Weg halte.
Gibt es etwas Ähnliches für require, mit dem ich eine JSON-Datei laden kann?
Antworten:
Ab Knoten v0.5.x können Sie Ihren JSON genauso benötigen, wie Sie eine js-Datei benötigen würden.
var someObject = require('./somefile.json')
In ES6:
import someObject from ('./somefile.json')
quelle
.json
scheint wichtig zu seinJSON-Dateien erfordern keine explizite Exportanweisung. Sie müssen nicht exportieren, um es als Javascript-Dateien zu verwenden.
Sie können also nur ein
require
gültiges JSON-Dokument verwenden.data.json
main.js
quelle
Nein. Entweder verwenden
readFile
oderreadFileSync
(Letzteres nur zum Startzeitpunkt).Oder verwenden Sie eine vorhandene Bibliothek wie
Alternativ schreiben Sie Ihre Konfiguration in eine JS-Datei anstatt in eine JSON-Datei wie
quelle
__dirname
relative Pfade.Zwei der häufigsten
Erster Weg:
let jsonData = require('./JsonFile')
// Wenn wir .json weglassen, funktioniert das auchODER
Zweiter Weg:
1) synchron
2) asynchron
Hinweis: 1) Wenn wir JsonFile.json ändern, erhalten wir die neuen Daten nicht, selbst wenn wir require ('./ JsonFile.json') erneut ausführen.
2) Die Datei fs.readFile oder fs.readFileSync liest die Datei immer wieder und erhält Änderungen
quelle
Sie können require von Ihrem JSON sogar verwenden , ohne die Erweiterung .json anzugeben . Damit können Sie die Dateierweiterung in .js ändern, ohne Ihre Importe zu ändern .
Angenommen, wir haben ./myJsonFile.json im selben Verzeichnis.
Wenn Sie in Zukunft ./myJsonFile.json in ./myJsonFile.js ändern , sollte beim Import nichts geändert werden.
quelle