데이터를 전자에 저장

나는 전자를 사용하여 많은 응용 프로그램을 만들었고 내가 직면한 문제는 항상 지속되는 데이터와 사용자 선호도였습니다.
데이터를 JSON 파일로 저장하고 앱에서 데이터가 변경될 때마다 업데이트를 하려고 많은 시간과 노력을 들여야 했기 때문에 그렇게 할 수 있는 패키지를 만들어보면 어떨까 하는 생각이 들었습니다.
나는 패키지를 작성하고 필요한 모든 기능을 여기에 추가하기 시작했습니다. 그래서 약간의 코딩, 테스트 및 디버깅 후에 electron-data-holder이라는 이 패키지를 만들었습니다. 그런데 내가 시도하는 모든 이름이 이미 사용 중이기 때문에 이 이름을 찾는 것이 매우 어려웠습니다. 요즘에는 패키지 이름을 찾는 것이 패키지 자체를 만드는 것보다 더 어렵습니다.

이 패키지에는 다음과 같은 많은 기능이 있습니다.
  • 예를 들어 데이터를 저장하기 위한 파일과 사용자 기본 설정을 저장하기 위한 다른 파일과 같이 각각 이름이 있는 여러 파일을 생성합니다.
  • 데이터 암호화
  • JSON 파일을 저장할 폴더를 지정하십시오
  • .
  • 모든 변경 후 데이터가 감시되고 JSON 파일이 업데이트됩니다
  • .
  • 데이터를 조작하는 API가 없으며 일반 Javascript에서와 같이 데이터로 작업합니다.

  • 작동 원리


    1 단계 :



    기본 프로세스 호출initDB()에서 이 함수는 2개의 속성이 있는 구성 개체를 허용합니다.
  • key : string (not required) : 암호화 키는 32자 길이여야 합니다
  • .
  • customPath : string (not required) : JSON 파일을 저장할 폴더의 경로입니다.

  • const { initDB } = require('electron-data-holder');
    
    // the encryption key must be 32 characters long.
    
    initDB({ key: 'the-encryption-key', customPath: 'the-path-to-the-folder' });
    
    

    2개의 매개변수는 필요하지 않습니다. 암호화 키를 전달하지 않으면 데이터가 암호화되지 않고 폴더 경로를 전달하지 않으면 폴더는 app.getPath('userData') 가 됩니다.

    2 단계 :



    렌더러 호출storeDB()에서 이 함수는 2개의 매개변수를 허용합니다.
  • 데이터 개체: object (required) : 데이터는 개체여야 합니다.
  • 구성 개체: (not required): 2개의 속성을 허용합니다.
  • fileName : string : 이름은 문자열이며 .json 부분이 없으면 기본값은 data.json 입니다.
  • encryption : boolean : 데이터를 암호화할지 여부, 기본값은 false 입니다.


  • const { storeDB } = require('electron-data-holder');
    
    // This function will returns a proxy with your data in it in order to watch the changes and update the JSON file.
    
    const data = storeDB(
      {
        user: {
          firstName: 'Elon',
          lastName: 'Mask',
        },
        hobbies: ['learning', 'codding'],
      },
    
      {
        fileName: 'dataFile',
        encryption: true,
      }
    );
    
    // you can create multiple files by giving each one a different name
    
    const config = storeDB(
      {
        darkMode: true,
        fontSize: 16,
        fontFamily: ['Courier', 'Courier', 'Everson Mono'],
      },
    
      { fileName: 'config' }
    );
    

    앱이 실행되면 JSON 파일을 검색하여 데이터가 있으면 데이터를 가져오고 반환하지 않으면 첫 번째 매개 변수로 전달한 개체를 사용합니다.

    이러한 코드 줄을 작성하고 나면 이제 데이터에 대한 걱정 없이 앱에서 작업할 준비가 된 것입니다.

    데이터 조작



    이 예를 사용합시다:

    const { storeDB } = require('electron-data-holder');
    
    const data = storeDB(
      {
        user: {
          firstName: 'Elon',
          lastName: 'Mask',
        },
        hobbies: ['learning', 'coding'],
      },
    
      {
        fileName: 'dataFile',
        encryption: true,
      }
    );
    


    데이터 읽기



    hobbies 배열의 첫 번째 요소를 콘솔에 기록해 보겠습니다.

    console.log(data.hobbies[0]); // 'learning'
    


    데이터 수정



    hobbies 배열에 "gaming"을 추가해 보겠습니다.

    data.hobbies.push('gaming');
    
    console.log(data.hobbies); // Proxy {0: "learning", 1: "coding", 2: "gaming"}
    


    사용자 개체에 "나이"속성을 추가해 보겠습니다.

    data.user.age = 47;
    
    console.log(data.user); // Proxy {firstName: "Elon", lastName: "Mask", age: 47}
    

    storeDB() 함수는 변경 사항을 확인하고 JSON 파일을 업데이트하기 위해 데이터가 포함된 프록시를 반환합니다.
    데이터를 수정할 때마다 JSON 파일이 그에 따라 업데이트됩니다.

    보시다시피 데이터를 읽고 수정하기 위한 추가 항목이 없으며 모든 변경 사항에 대해 저장하는 것에 대해 걱정할 필요가 없습니다. 이 패키지는 모든 것을 처리하므로 앱 빌드에 집중할 수 있습니다. 행복한 코딩

    좋은 웹페이지 즐겨찾기