把 Apps Script 作為簡單的資料庫來使用

Apps Script 是 Google 所提供的免費服務之一 可以在上面執行 javascript 的子集與 Google 的去操作一些服務(ex: 雲端硬碟、試算表) 而他也支援使用 httphook ,可以在收到某些 request 時做出某些操作

maple3142/apps-script-db 就是使用它的一些功能來實現 key=>value 的資料庫的小 library

建立資料庫

建立第一個腳本

Apps Script 官網 上登入你的 Google 帳號,按下右上角的新增指令碼

new script

接下來把 db.js 裡面的內容複製到剛剛建立的新腳本中 然後點右上角的 檔案->儲存,或是直接按下 Ctrl+S 來儲存檔案,然後輸入任何能夠辨識的名稱

paste and save

應該要看到這樣

發佈

接下來按上方選單的 發佈->部屬為網路應用程式 然後在 專案版本 中輸入任何東西 以及把 具有應用程式存取權的使用者 改成 任何人,甚至是匿名使用者

deploy

然後按下確定之後會得到一個網址,這個網址就是你的資料庫位置

網址應該長的像下面這樣

1
https://script.google.com/macros/s/隨機字串/exec

使用方法

目前這個專案也只有 javascript 的 api 能呼叫,不過實際上用任何能發送 http request 的語言都能操作資料庫 建議參考 index.js 裡面的內容

真的很簡單,不到 50 行

UI 編輯器

https://maple3142.github.io/apps-script-db/ 能看到一個頁面 在 資料庫網址 的欄位填上剛剛得到的資料庫網址,並按下 載入 然後可以新增一些 key 值與更新一些 value

editor

而這個編輯器的原始碼在這個專案的 webui branch

node.js

1
npm i --save apps-script-db
1
2
3
4
5
6
7
8
const ADB = require('apps-script-db')
const fetch = require('node-fetch')
const db = new ADB(YOUR_DATABASE_URL, fetch)

(async ()=>{
await db.set('key', {a: 5})
await db.get('key') //{a: 5}
})()

因為這是使用 fetch 去發送請求的,所以需要自己提供 fetch 的 polyfill 不內建是因為為了減少瀏覽器打包的問題

瀏覽器

1
2
3
4
<script src="https://unpkg.com/apps-script-db"></script>
<script>
const db = new ADB(YOUR_DATABASE_URL)
</script>

在瀏覽器端能直接從 cdn 上引用 不過也可以用 webpack 之類的東西來 require (一樣不需要手動提供 fetch)