Chciałbym dołączyć kilka plików JSON do mojego kodu JavaScript, które znajdują się w tym samym katalogu, co mój plik źródłowy JavaScript.
Gdybym chciał dołączyć inny plik JavaScript, mógłbym po prostu użyć require
. Teraz używam readFileSync
i __dirname
otrzymuję JSON, co moim zdaniem jest brzydkim sposobem na zrobienie tego.
Czy istnieje coś podobnego do wymagania, które pozwala mi załadować plik JSON?
Odpowiedzi:
Począwszy od węzła v0.5.x tak, możesz wymagać JSON, tak jak potrzebujesz pliku js.
var someObject = require('./somefile.json')
W ES6:
import someObject from ('./somefile.json')
źródło
.json
wydaje się mieć znaczeniePliki JSON nie wymagają jawnego zestawienia eksportu. Nie musisz eksportować, aby użyć go jako plików JavaScript.
Możesz użyć tylko
require
ważnego dokumentu JSON.data.json
main.js
źródło
Nie. Albo użyj
readFile
alboreadFileSync
(to ostatnie tylko podczas uruchamiania).Lub użyj istniejącej biblioteki, takiej jak
Alternatywnie zapisz swoją konfigurację w pliku js zamiast w pliku json jak
źródło
__dirname
do tworzenia względnych ścieżek.Dwa najczęstsze
Pierwszy sposób:
let jsonData = require('./JsonFile')
// jeśli pominiesz .json również działaLUB
Drugi sposób:
1) synchronicznie
2) asynchronicznie
Uwaga: 1) jeśli zmienimy plik JsonFile.json, nie otrzymamy nowych danych, nawet jeśli uruchomimy ponownie wymagają ('./ JsonFile.json')
2) Fs.readFile lub fs.readFileSync zawsze będą ponownie czytać plik i otrzymywać zmiany
źródło
Możesz nawet użyć wymagania JSON bez określania rozszerzenia .json . Umożliwi to zmianę rozszerzenia pliku na .js bez żadnych zmian w importowaniu.
zakładając, że mamy plik ./myJsonFile.json w tym samym katalogu.
Jeśli w przyszłości zmienisz plik ./myJsonFile.json na ./myJsonFile.js, nic nie powinno zostać zmienione podczas importu.
źródło