1 - Exercise


express middleware, next()
settimeout関数sleep

イニシャル


$ touch server.js
$ npm init -y
$ npm i express sequelize sequelize-cli mysql2
$npm i-D nodemon(D=>依存項目を表します(すぐに保存して実行します)
$ npx sequelize init (Don't need migration and seeders)
  • open workbench
    -DROP DATABASE IF EXISTSデータベース名;
    -CREATE DATABASEデータベース名;
    config setting change password
  • 1.データベースモデリング


    データベースの作成

  • mysql-u root-pとパスワード
  • データベース名文字セットutf 8 mb 4 collate utf 8 mb 4 general ciを作成します.
  • create user「ユーザー名」@「localhost」は、「パスワード」で識別されます.//ユーザー作成
  • は、すべてのデータベース名に権限を付与します.*ユーザー名@localhost;//ユーザー・データベースの権限期間
  • テーブルの作成(Migration)

  • dbdiagram.ioのERD名.sql拡張子ファイルのエクスポート
  • ERD名.sqlファイル
  • の変更
    DROP TABLE IF EXISTS users, articles, comments;
    
    CREATE TABLE `users` (
      `id` int PRIMARY KEY AUTO_INCREMENT,
      `email` varchar(100) UNIQUE NOT NULL,
      `password` varchar(200) NOT NULL,
      `status` ENUM ('ACTIVE', 'INACTIVE') NOT NULL DEFAULT "ACTIVE", 
      `created_at` datetime DEFAULT CURRENT_TIMESTAMP, 
      `updated_at` datetime ON UPDATE CURRENT_TIMESTAMP, # 수정된 부분
      `deleted_at` datetime DEFAULT null
    );
    CREATE TABLE `articles` (
      `id` int PRIMARY KEY AUTO_INCREMENT,
      `user_id` int NOT NULL,
      `title` varchar(200) NOT NULL,
      `body` varchar(2000) NOT NULL,
      `status` ENUM ('DRAFT', 'PUBLISHED', 'DELETED') NOT NULL DEFAULT "DRAFT",
      `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
      `updated_at` datetime ON UPDATE CURRENT_TIMESTAMP,
      `deleted_at` datetime DEFAULT null
    );
    CREATE TABLE `comments` (
      `id` int PRIMARY KEY AUTO_INCREMENT,
      `article_id` int NOT NULL,
      `user_id` int NOT NULL,
      `body` varchar(1000) NOT NULL,
      `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
      `updated_at` datetime ON UPDATE CURRENT_TIMESTAMP,
      `deleted_at` datetime DEFAULT null
    );
    # 외래키 설정하는 부분
    ALTER TABLE `articles` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);
    ALTER TABLE `comments` ADD FOREIGN KEY (`article_id`) REFERENCES `articles` (`id`);
    ALTER TABLE `comments` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);
    3.ERP名.sqlファイルをMySQLデータベースに移行
  • mysql-uユーザー名-pデータベース名
  • データベースに接続してテーブルの生成を検証
  • mysql-uユーザー名-p;useデータベース名;show tables;
  • Sequelize ORM


    Installing

  • $ npm install --save sequelize
  • $ npm install --save mysql2