Electron (Atom Shell) 애플리케이션에서 사용자 설정을 저장할 위치는?
사용자 설정을 저장하는 내장 메커니즘을 찾을 수없는 것 같습니다. 전자가 모든 데스크톱 플랫폼에서 사용자 설정을 저장하는 표준 방법을 제공하기를 바라고 있습니다. 이에 대한 선례가 없다면 직접 구현할 수 있지만 즉시 사용자 지정 솔루션으로 이동하고 싶지 않았습니다. 온라인 조사는이 분야에서 매우 드물다. 감사!
각 플랫폼에는 다양한 종류의 데이터에 대해 서로 다른 기본 위치가 있습니다. 따라서 플랫폼에 따라 기본 위치에 데이터를 저장하려면app.getPath(name)
과 연관된 특수 디렉토리 또는 파일의 경로를 검색합니다 name.
또한이를 사용하여 사용자가 저장하려는 데이터와 사용자 디렉토리를 어지럽히 지 않으려는 애플리케이션에서 저장하는 데이터를 구분할 수 있습니다.
또는 특정 경로에 관련된 파일을 저장하려는 경우 app.setPath(name,path)
저는 Electron 앱에서이 특정 문제에 직면했으며이 게시물은 electron-json-storage 라는 NPM 모듈을 작성하도록 영감을 받았습니다 .
이 모듈을 사용하면 JSON을 쉽게 작성 / 읽을 수 있습니다 app.getPath('userData').
const storage = require('electron-json-storage');
// Write
storage.set('foobar', { foo: 'bar' }).then(function() {
// Read
storage.get('foobar').then(function(object) {
console.log(object.foo);
// will print "bar"
});
});
Electron은 이것에 대한 상자에서 아무것도 제공하지 않습니다. 그러나 Electron은 app.getPath API 를 통해 크로스 플랫폼 방식으로 사용자 데이터를 저장하는 관용적 위치를 얻는 방법을 제공합니다 .
이를 수행하는 가장 일반적인 3 가지 방법은 다음과 같습니다.
- localStorage (또는 HTML5 저장소 API)
- 플랫 JSON 파일 (이것이 내가하는 일이며 전자 저장소 를 사용합니다)
- IndexedDB, neDB 또는 sqlite와 같은 임베디드 데이터베이스
선택하는 것은 앱의 요구 사항에 따라 다릅니다. 렌더러 프로세스에서이 데이터에만 액세스해야하는 경우 localStorage. 대부분의 경우 기본 및 렌더러 모두에서 데이터에 액세스해야하는 것으로 보이므로 JSON 파일이 의미가 있습니다. 많은 데이터 또는 복잡한 쿼리를 처리하는 경우 데이터베이스가 의미가있을 수 있습니다. 나는 이것에 대해 더 자세히 여기에 썼다 .
LocalStorage는 어떻습니까? 브라우저 프로세스에서 이러한 설정에 액세스해야하는 경우 직접 작성해야합니다 (또는이를 구현하는 node.js 라이브러리를 사용하면됩니다).
내가 찾은 가장 좋은 방법은 JSON으로 간단한 파일에 저장하는 것입니다. 문제는 해당 JSON을 앱 디렉토리에 저장하면 앱을 업데이트하면 지워진다는 것입니다. 따라서 현재 운영 체제의 사용자 설정을 위해 기본 디렉토리에 저장하려고합니다. 운 좋게!!!!! userdata 디렉토리를 찾는 데 도움이되는 노드 개발자 용 라이브러리가 있습니다. 모듈은라고 appdirectory하며 여러 번 사용했습니다. 사용하기 매우 쉽습니다.
쿠키에 데이터를 저장할 수 있습니다. Electron에는이를위한 메커니즘 ( https://electronjs.org/docs/api/cookies )이 있으며 쿠키는 브라우저 (Angular : https://docs.angularjs.org/api/ngCookies/service/ $) 에서 검색 할 수 있습니다. 쿠키, React / 기타 : https://github.com/reactivestack/cookies )
Angularjs로 작업 할 수있었습니다.
'Nice programing' 카테고리의 다른 글
| AngularJS 문서가 모델 지시어에 점을 사용하지 않는 이유는 무엇입니까? (0) | 2020.11.01 |
|---|---|
| Swagger 사양 JSON을 HTML 문서로 변환 (0) | 2020.11.01 |
| ASP.NET 애플리케이션을 단위 테스트 할 때 web.config를 사용하는 방법 (0) | 2020.11.01 |
| 왜 (0) | 2020.11.01 |
| 세마포어-초기 카운트의 사용은 무엇입니까? (0) | 2020.11.01 |