deta (baas)
なんかこれが欲しかったけど今まではなかったもの感が否めない最高なBaas(?)。
無料&クレカなし&簡単。満足。最高。
- データベース(NoSQL)
- Faas (lambdaとかFirebase functions みたいなやつ)
- ストレージ
これらが本当にお手軽に使える。
大切なことなのでもう一度言う。
本当にお手軽に使える。
インストールもろもろ
CLIインストール
# Windowsの方 (PowerShellで実行してください!)
iwr https://get.deta.dev/cli.ps1 -useb | iex
# macの方
curl -fsSL https://get.deta.dev/cli.sh | sh
自分はWindowsユーザなのでmacは試せていません。エラーなどあったらごめんなさい。
パッケージインストール
npm init -y
yarn add deta
共通部分
いろいろインポートしておく。
const { Deta } = require("deta") ;
const deta = Deta(process.env.DETA_PROJECT_KEY) ;
※プロジェクトキーは機密情報なので.env
などに記載しておく。
.envの例
DETA_PROJECT_KEY=〇〇〇...
micro
Faas,瞬時的なクラウド上の実行環境
いろいろセットアップ
microは別プロジェクトで立ち上げるか、トップフォルダ直下にプロジェクト作るほうがよさそう
deta new --node プロジェクト名
コード
const express = require('express')
const app = express()
app.get('/', (req, res) => {
const reqBody = req.body ;
res.status(200).json({
msg:"ok",
reqBody,
});
}) ;
module.exports = app ;
base
DBaas,データベース
const usersDb = deta.Base("users") ;
//async 関数内で実行
usersDb.put(
{ name:"TBSten", job:"エンジニア", }
);
const userList = await usersDb.fetch() ;
userList.items.forEach(el=>{
console.log(el);
});
Drive
Storage,10GBくらいおけるらしい
const photos = deta.Drive("photos") ;
//async 関数内で実行
await photos.put(
"test.png",
{path: "test/GitHub-Mark.png"}
) ;
個人的にはこんなフォルダ構成で使いそう
lib/
+- deta/
+-deta.js //detaをエクスポート
+-base.js //deta.jsのdetaからbaseと各テーブルをエクスポート
+-drive.js //deta.jsのdetaからdriveと各フォルダをエクスポート
+-
+- ...(自作ライブラリなど)...
server/
+- node_module/
+- ...
+- index.js //expressでルート分岐
参考サイト
独り言
欲しい機能がこれでもかとあるので、今後作ろうとしているサービスで採用予定です。