見出し画像

超簡単Node.jsでPlanetScale(サーバレスDB)入門

Node.js(express利用)で超簡単にPlanetScale(サーバレスDB)入門

1. GitHubアカウント作成

2. PlanetScaleアカウント作成(GitHubアカウント利用)

3. コマンドラインツール(pscale)インストール(mac)

windows、linux等はこちら

$ brew install planetscale/tap/pscale
$ brew install mysql-client

4. データベース設定

ログイン

$ pscale auth login

データベース作成

$ pscale database create pscale-node

テーブル作成

$ pscale shell pscale-node main

pscale-node/main> CREATE TABLE `users` (
   ->   `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ->   `email` varchar(255) NOT NULL,
   ->   `first_name` varchar(255),
   ->   `last_name` varchar(255)
   -> );
   
pscale-node/main> INSERT INTO `users` (id, email, first_name, last_name)
   -> VALUES  (1, 'hp@example.com', 'Harry', 'Potter');
   
pscale-node/main> select * from users;
+----+----------------+------------+-----------+
| id | email          | first_name | last_name |
+----+----------------+------------+-----------+
|  1 | hp@example.com | Harry      | Potter    |
+----+----------------+------------+-----------+

5. ファイル作成

$ mkdir pscale-node
$ cd pscale-node
$ npm init
$ npm i express mysql2 dotenv

pscale-node/app.py

require('dotenv').config();
const express = require('express')
const app = express()
const port = process.env.PORT || 3000

const mysql = require('mysql2')
const connection = mysql.createConnection(process.env.DATABASE_URL);

connection.connect()

app.get('/', (req, res) => {
 connection.query('SELECT * FROM users', function (err, rows, fields) {
   if (err) throw err

   res.send(rows)
 })
})

app.listen(port, () => {
 console.log(`Example app listening at http://localhost:${port}`)
})

6. 実行(設定ファイル無し)

$ pscale connect pscale-node main --execute 'node app.js'

7. 実行(設定ファイル有り)

パスワード作成コマンドからの情報を.envファイルに設定し実行

$ pscale password create pscale-node main <PASSWORD_NAME>

  NAME                  USERNAME       ACCESS HOST URL                     ROLE               PASSWORD
--------------------- -------------- ----------------------------------- ------------------ -------------------------------------------------------
 production-password   xxxxxxxxxxxxx   xxxxxx.us-east-2.psdb.cloud   Can Read & Write   pscale_pw_xxxxxxx

pscale-node/.env

DATABASE_URL=mysql://<USERNAME>:<PLAIN_TEXT_PASSWORD>@<ACCESS_HOST_URL>/<DATABASE_NAME>?ssl={"rejectUnauthorized":true}
$ node app.js

8. URL確認

画像1

以上、超簡単!

9. 参考


この記事が気に入ったらサポートをしてみませんか?