# 讀寫本地文件
使用 `electron` 的一大好處是可以訪問用戶的文件系統。這使你可以讀取和寫入本地系統上的文件。為了避免 Chromium 的限制以及對應用程序內部文件的改寫,請確保使用 `electron` 的 API,特別是 [`app.getPath(name)`](https://electron.atom.io/docs/api/app/#appgetpathname) 函數。這個幫助函數可以使你獲得指向系統目錄的文件路徑,如用戶的桌面、系統臨時文件 等等。
### 使用案例
假設我們想為我們的應用程序提供本地的數據庫存儲。在這個例子中,我們將用 [`nedb`](https://github.com/louischatriot/nedb) 作為演示。
```bash
yarn add nedb # 或 npm install nedb --save
```
**src/renderer/datastore.js**
這里,我們設置 NeDB 并將其指向我們的 `userData` 目錄。這個空間專門為我們的應用程序所保留,所以,我們可以確信,其他程序 或 與其他用戶的交互不應該篡改這個文件空間。至此,我們可以在 `renderer` 進程中導入 `datastore.js` 并使用它。
```js
import Datastore from 'nedb'
import path from 'path'
import { remote } from 'electron'
export default new Datastore({
autoload: true,
filename: path.join(remote.app.getPath('userData'), '/data.db')
})
```
**src/renderer/main.js**
為了更進一步,我們可以將數據存儲導入到 `src/renderer/main.js` 里,并將其附加到 Vue 的 原型 (prototype) 上。通過在所有組件文件中使用 `this.$db`,我們現在可以訪問數據存儲的 API。
```js
import db from './datastore'
/* 其它代碼 */
Vue.prototype.$db = db
```