Saya ingin memasukkan beberapa file JSON dalam kode JavaScript saya yang ada di direktori yang sama dengan file sumber JavaScript saya.
Jika saya ingin memasukkan file JavaScript lain, saya cukup menggunakan require
. Sekarang saya menggunakan readFileSync
dan __dirname
untuk mendapatkan JSON, yang menurut saya merupakan cara jelek untuk melakukannya.
Apakah ada persyaratan serupa yang memungkinkan saya untuk memuat file JSON?
Jawaban:
Pada node v0.5.x ya Anda dapat meminta JSON seperti halnya Anda membutuhkan file js.
var someObject = require('./somefile.json')
Dalam ES6:
import someObject from ('./somefile.json')
sumber
.json
tampaknya pentingFile JSON tidak memerlukan pernyataan ekspor eksplisit. Anda tidak perlu mengekspor untuk menggunakannya sebagai file Javascript.
Jadi, Anda dapat menggunakan hanya
require
untuk dokumen JSON yang valid.data.json
main.js
sumber
Tidak. Baik menggunakan
readFile
ataureadFileSync
(Yang terakhir hanya pada saat startup).Atau gunakan perpustakaan yang ada suka
Atau tulis konfigurasi Anda dalam file js daripada file json suka
sumber
__dirname
untuk membuat jalur relatif.Dua yang paling umum
Cara pertama:
let jsonData = require('./JsonFile')
// jika kita menghilangkan .json juga berfungsiATAU
Cara kedua:
1) secara serempak
2) tidak sinkron
Catatan: 1) jika kita JsonFile.json diubah, kita tidak mendapatkan data baru, bahkan jika kita menjalankan membutuhkan ('./ JsonFile.json')
2) fs.readFile atau fs.readFileSync akan selalu membaca ulang file, dan mendapatkan perubahan
sumber
Anda bahkan dapat menggunakan membutuhkan JSON Anda tanpa menentukan ekstensi .json . Ini akan memungkinkan Anda mengubah ekstensi file menjadi .js tanpa ada perubahan pada impor Anda.
dengan asumsi kita memiliki ./myJsonFile.json di direktori yang sama.
Jika di masa depan Anda akan mengubah ./myJsonFile.json menjadi ./myJsonFile.js tidak ada yang harus diubah dalam impor.
sumber