2
0

More than 1 year has passed since last update.

detaにNodeJSで入門(ほぼ自分用メモ)

Last updated at Posted at 2021-10-25

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でルート分岐

参考サイト

公式ドキュメント(英語だけどほんやくしたら結構読める)

独り言

欲しい機能がこれでもかとあるので、今後作ろうとしているサービスで採用予定です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0