programing

Node.js 아래에 JSON을 쉽게 저장하는 방법

skycolor 2023. 3. 28. 21:30
반응형

Node.js 아래에 JSON을 쉽게 저장하는 방법

Node.js에서 하나의 JSON 어레이를 영속적으로 저장할 수 있는 매우 간단한 방법을 찾고 있습니다.특별한 기능이 필요하지 않습니다.JSON 오브젝트를 넣고 다음 서버 재시작 시 읽을 수 있으면 됩니다.

(MongoDBCouchDB와 같은 솔루션은 모두 이 목적을 위해 과잉으로 보입니다.)

파일에 쓰는 게 어때요?

// Writing...
var fs = require("fs");
var myJson = {
    key: "myvalue"
};

fs.writeFile( "filename.json", JSON.stringify( myJson ), "utf8", yourCallback );

// And then, to read it...
myJson = require("./filename.json");

또, 기입과 읽기를 반복할 필요가 있는 경우는, 반복해 읽고 있는 파일 마다 노드의 캐시를 클리어 할 필요가 있습니다.그렇지 않으면, Node는 파일을 새로고침하지 않고, 대신에, 최초의 컨텐츠가 표시됩니다.require특정 요건을 위해 캐시를 클리어하는 것은 매우 간단합니다.

delete require.cache[require.resolve('./filename.json')]

또한 (Node 12에서) CommonJ가 아닌 ES 모듈을 사용하는 경우import문에 대응하는 캐시 무효화가 없습니다.대신 dynamic import()를 사용하여 Import가 URL에서 이루어지므로 Import 문자열의 일부로 캐시 버스트 형식으로 쿼리 문자열을 추가할 수 있습니다.

또는 내장 캐시를 피하기 위해fs.readFile()/fs.readFileSync()필요(사용) 대신fs/promises대신fs약속 기반 코드를 명시적으로 작성하거나 비동기/비동기 사용으로 암묵적으로 작성하는 경우)

NeDB 시험: https://github.com/louischatriot/nedb

"Node.js용 내장형 영구 데이터베이스로 Javascript로 작성되었으며 종속성이 없습니다(물론 npm 모듈은 제외).단순한 require 문과 함께 사용할 수 있는 Node.js 프로젝트용 SQLite라고 생각하면 됩니다.API는 MongoDB의 서브셋입니다.영구 데이터 저장소로 사용할 수도 있고 메모리 내 전용 데이터 저장소로 사용할 수도 있습니다.

json-fs-store라는 이름의 라이브러리가 발견되어 JavaScript 객체를 JSON으로 시리얼화하고 나중에 가져옵니다.

를 통해 파일을 취득할 때store.loadmethod(현시점에서는 설명되지 않음)로 해석됩니다.JSON.parse어떤 것이 더 나은지require다른 답변과 같습니다.

  • 내용의 형식이 올바르지 않은 경우 올바른 오류 처리를 얻을 수 있습니다.
  • 만약 누군가가 JavaScript 코드를 파일에 몰래 넣는 데 성공했다면, JS가 실행되는 대신 구문 분석 오류가 발생합니다.

퍼포먼스를 필요로 하는 경우 다음 사항을 고려하십시오.s

https://www.npmjs.com/package/lokijs

http://lokijs.org/ #/

외부 프로세스가 없고 매우 강력하고 안정적인 성능을 갖춘 단순한 데이터 스토리지가 필요한 경우 Rocket-Store를 사용할 수 있습니다.사용법은 매우 간단합니다.모듈을 포함하면 바로 레코드 삽입을 시작할 수 있습니다.

여기에는 put, get, delete의 3가지 주요 방법(및 일부 특수한 방법 및 옵션 설정)이 있습니다.

예:

// collection/table = "cars", key = "Mercedes"
result = await rs.post("cars", "Mercedes", {owner: "Lisa Simpson", reg: "N3RD"});

// Get all records from "cars" collection
result = await rs.get("cars","*");

// Delete records in collection "cars" where keys match "*cede*"
result = await rs.delete("cars","*cede*");

기본 파일 시스템 캐시에 의존하여 속도를 최적화하고 수백만 개의 레코드로 작동할 수 있습니다.

간단한 시퀀스, 자동 증가 및 기타 사소한 편의도 얻을 수 있습니다. 하지만 그것뿐입니다.화려하지 않다.심플한 스토리지 솔루션이 필요할 때마다 매우 마음에 들지만, 저자로서 매우 편향적이기도 합니다.

JSON 데이터를 단순한 텍스트 파일에 저장하고 서버 재시작 시 읽을 수 있습니다.

const data = require("yourarrayfile.json");

평소와 같이 작업합니다.

LowDB를 시험

Lowdb는 Lodash(Node, Electron 및 브라우저 지원)를 기반으로 하는 소규모 로컬 JSON 데이터베이스입니다.Lodash를 알고 있다면 Lowdb 사용법을 이미 알고 있는 것입니다.

LokiJS와 NeDB 모두 사용자가 많아 보이지만 TaffyDB를 발견한 것은 얼마 전입니다.직접 사용해 본 적은 없지만, 완성도를 높이기 위해 여기에 추가해야겠다고 생각했습니다.

노드의 fs 시스템을 제안한 사용자는 동의해야 합니다.다른 사람들은 모두 mongoDB 등이 이미 과잉인 경우, 단순 로케일 스토리지나 노드의 FS 라이브러리 등 전체적으로 보이는 것들을 제안하고 있습니다.

웹 개발 여정을 시작했을 때는 mongoDB 등을 통해 영속적인 데이터 스토리지 기술을 익힐 만큼 몰랐던 것으로 기억합니다.그러나 노드의 FS 라이브러리는 초기 어플리케이션 몇 가지를 성공시켰습니다.로컬 서버를 재부팅한 후에도 모든 데이터는 그대로 유지되었습니다.

언급URL : https://stackoverflow.com/questions/14939289/easy-way-to-store-json-under-node-js

반응형