IT story

node.js에 json이 필요합니까?

hot-time 2020. 4. 29. 08:13
반응형

node.js에 json이 필요합니까?


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 파일에는 명시 적 내보내기 문이 필요하지 않습니다. Javascript 파일로 사용하기 위해 내보낼 필요는 없습니다.

따라서 require유효한 JSON 문서 에만 사용할 수 있습니다 .

data.json

{
  "name": "Freddie Mercury"
}

main.js

var obj = require('data.json');

console.log(obj.name); 
//Freddie Mercury

아니요. readFile또는 readFileSync시작시에만 사용 합니다.

또는 같은 기존 라이브러리를 사용하십시오.

또는 json 파일 대신 js 파일에 구성을 작성하십시오.

module.exports = {
  // json
}

가장 일반적인 두 가지

첫 번째 방법 :

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 로 변경하면 가져 오기에서 아무것도 변경하지 않아야합니다.

참고 URL : https://stackoverflow.com/questions/7163061/is-there-a-require-for-json-in-node-js

반응형