Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mizukiokushima/nodejs_6th

Node.jsの基礎学習です。
https://github.com/mizukiokushima/nodejs_6th

Last synced: 24 days ago
JSON representation

Node.jsの基礎学習です。

Awesome Lists containing this project

README

        

# Nodejs_6th
Node.jsを使用してサーバーサイドとデータベースのアクセス連携を試す。


- Postmanにてリクエストを送信
- Node.jsにてサーバーサイドを構築

APIの構築: Postmanから受け取ったリクエストからPostgreSQLへデータ要求しPostmanへデータを返す

- SQLの基礎学習

## 使用環境について
Postman

クライアント側からリクエスト送信に使用するアプリ



Node.js v22.1.0

サーバーに使用する



PostgreSQL

DBに使用

## 環境構築
package.jsonファイルの生成

```
npm init -y
```


express, nodemon, pgのインストール

nodemon 保存する度にサーバーをリロードしてくれるモジュール

pg PostgreSQLとNode.jsで作成したサーバーを連携するモジュール

```
npm i express nodemon pg
```


dotenvのインストール

を環境変数を使用し保守性を高める

```
npm i dotenv
```


package.jsonのscriptsに以下の内容を追加

```
"scripts": {
"start": "nodemon server.js"
}
```


.envの作成

```
touch .env
```
.envに以下を記載

```
# PostgreSQLのパスワード
PG_PWD=[PostgreSQLのパスワード]
```


## PostgreSQLの基礎操作

SQL Shell(psql)からターミナルを起動


各問にreturnキーで進める

PostgreSQLにてDB作成

```
postgres=# CREATE DATABASE users;
```


作成したDBに接続

```
postgres=# \c users
```


usersテーブルの作成

```
users=# CREATE TABLE users (
ID serial primary key,
name varchar(255),
email varchar(255),
age int);
```


作成したテーブルの確認

```
users=# \dt
```
```
List of relations
Schema | Name | Type | Owner
--------+-------+-------+----------
public | users | table | postgres
(1 row)
```

レコードの登録

```
users=# INSERT INTO users (name, email, age)
values ('hogehoge', '[email protected]', 25),
('testUser', '[email protected]', 34);
```
```
INSERT 0 2
```


レコードの取得

```
users=# SELECT * FROM users;
```
```
id | name | email | age
----+----------+--------------------+-----
1 | hogehoge | [email protected] | 25
2 | testUser | [email protected] | 34
(2 rows)
```


## PostmanにてGETとPOSTを試す

### GET

![GET](https://github.com/user-attachments/assets/20b33e9d-7646-4b0f-8745-57170c1fdca4)

### POST_SUCCESS

![POST_SUCCESS](https://github.com/user-attachments/assets/be7c3218-b6ca-46cc-98c3-8e830f2d0287)

### POST_ERROR

![POST_ERROR](https://github.com/user-attachments/assets/7666917d-4fb4-46d7-a4ed-95d6fa0cd02a)

### DELETE

![DELETE](https://github.com/user-attachments/assets/f0252a1e-1e44-48b3-8c58-932e7633c5ab)

### PUT

![PUT_BEFORE](https://github.com/user-attachments/assets/6c183054-c9c9-4f1c-a6e9-64865bf34437)

![PUT_AFTER1](https://github.com/user-attachments/assets/7dd9efb6-1303-4282-a0ae-2d66d14372d6)

![PUT_AFTER2](https://github.com/user-attachments/assets/7252c1dd-ba77-4414-9d44-67677d9adf88)

![PUT_NOTHING](https://github.com/user-attachments/assets/8ff5ec27-3ef3-4007-bfcc-e7ffb5cc5fc9)