programing

node.display에 json 요건이 있습니까?

lastmemo 2023. 3. 17. 19:32
반응형

node.display에 json 요건이 있습니까?

자바스크립트 소스 파일과 같은 디렉토리에 있는 몇 개의 JSON 파일을 자바스크립트 코드에 포함시키고 싶습니다.

다른 JavaScript 파일을 포함하려면 간단히 사용할 수 있습니다.require지금 사용하고 있습니다.readFileSync그리고.__dirnameJSON을 얻는 건 추악한 방법이라고 생각해요

JSON 파일을 로드할 수 있는 유사한 요구 사항이 있습니까?

노드 v0.5.x yes에서는 js 파일이 필요한 경우와 마찬가지로 JSON이 필요합니다.

var someObject = require('./somefile.json')

ES6의 경우:

import someObject from './somefile.json'

JSON 파일에는 명시적인 내보내기 문이 필요하지 않습니다.Javascript 파일로 사용하기 위해 내보낼 필요가 없습니다.

그래서 그냥 쓸 수 있어요.require유효한 JSON 문서의 경우.

data.json

{
  "name": "Freddie Mercury"
}

main.discloss.main.discloss.

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

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

가장 일반적인 두 가지

첫 번째 방법:

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는 항상 파일을 다시 읽고 변경을 가져옵니다.

아니요. 어느쪽이든 사용하세요.readFile또는readFileSync(후자는 기동시에만).

또는 다음과 같은 기존 라이브러리를 사용합니다.

또는 다음과 같은 json 파일이 아닌 js 파일에 구성을 쓰십시오.

module.exports = {
  // json
}

노드 15 모듈용 비캐싱 비동기 라이너:

import { readFile } from 'fs/promises';

const data = await readFile('{{ path }}').then(json => JSON.parse(json)).catch(() => null);

확장자 .json을 지정하지 않고 JSON의 require를 사용할 수도 있습니다.Import를 변경하지 않고 파일 확장자를 .js로 변경할 수 있습니다.

같은 디렉토리에 ./myJsonFile.json이 있다고 가정합니다.

const data = require('./myJsonFile')

앞으로 ./myJsonFile.json./myJsonFile.js로 변경할 경우 Import에서 아무것도 변경하지 마십시오.

node.js v14 experimental json modules 플래그를 사용하여 json 파일을 가져올 수 있습니다.자세한 내용은 이쪽

file.filength.filength 파일

import data from './folder/file.json' assert { type: 'json' }

export default {
  foo () {
    console.log(data)
  }
}

그리고 당신은 그것을node --experimental-json-modules file.js

모듈을 사용하여 요구를 작성할 수 있습니다.

import { createRequire } from 'module'
const require = createRequire(import.meta.url)
const foo = require('./foo.json')

타이프스크립트 사용하는 경우 tsconfig.json에 resolveJsonModule: true라는 새 필드를 추가하면 다음과 같이 .json 파일의 모든 정보를 Import할 수 있습니다.

import * as jsonfile from "./path/to/json"

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

반응형