JavaScript 소스 파일과 동일한 디렉토리에있는 JavaScript 코드에 몇 개의 JSON 파일을 포함하고 싶습니다.
다른 JavaScript 파일을 포함하고 싶다면 간단히 사용할 수 있습니다 require
. 이제 JSON을 사용 readFileSync
하고 __dirname
있으며 JSON을 얻는 데 추한 방법이라고 생각합니다.
JSON 파일을로드 할 수있는 require와 비슷한 것이 있습니까?
JavaScript 소스 파일과 동일한 디렉토리에있는 JavaScript 코드에 몇 개의 JSON 파일을 포함하고 싶습니다.
다른 JavaScript 파일을 포함하고 싶다면 간단히 사용할 수 있습니다 require
. 이제 JSON을 사용 readFileSync
하고 __dirname
있으며 JSON을 얻는 데 추한 방법이라고 생각합니다.
JSON 파일을로드 할 수있는 require와 비슷한 것이 있습니까?
답변:
v0.5.x 노드부터 js 파일이 필요한 것처럼 JSON이 필요할 수 있습니다.
var someObject = require('./somefile.json')
ES6에서 :
import someObject from ('./somefile.json')
.json
은 중요해 보인다
아니요. readFile
또는 readFileSync
시작시에만 사용 합니다.
또는 같은 기존 라이브러리를 사용하십시오.
또는 구성을 js 파일 대신 js 파일에 작성하십시오.
module.exports = {
// json
}
__dirname
상대 경로를 만드는 데 사용 합니다.
가장 일반적인 두 가지
첫 번째 방법 :
let jsonData = require('./JsonFile.json')
let jsonData = require('./JsonFile')
// .json을 생략하면 작동합니다.
또는
import jsonData from ('./JsonFile.json')
두 번째 방법 :
1) 동 기적으로
const fs = require('fs')
let jsonData = JSON.parse(fs.readFileSync('JsonFile.json', 'utf-8'))
2) 비동기 적으로
const fs = require('fs')
let jsonData = {}
fs.readFile('JsonFile.json', 'utf-8', (err, data) => {
if (err) throw err
jsonData = JSON.parse(data)
})
참고 : 1) JsonFile.json이 변경되면 require ( './ JsonFile.json')을 다시 실행하더라도 새 데이터를 얻지 못합니다.
2) fs.readFile 또는 fs.readFileSync는 항상 파일을 다시 읽고 변경 사항을 가져옵니다.
확장명 .json 을 지정하지 않고도 JSON 필요 를 사용할 수도 있습니다 . 가져 오기를 변경하지 않고도 파일 확장자를 .js로 변경할 수 있습니다 .
동일한 디렉토리에 ./myJsonFile.json이 있다고 가정합니다 .
const data = require('./myJsonFile')
앞으로 ./myJsonFile.json 을 ./myJsonFile.js 로 변경하면 가져 오기에서 아무것도 변경하지 않아야합니다.