LoginSignup
10
10

More than 5 years have passed since last update.

AWS Elastic Beanstalk+Node.js+Express+Passport+MySQLでアカウント管理(その1)

Last updated at Posted at 2013-05-04

以前の記事:【覚え書き】AWS Elastic BeanstalkからRDSへ接続に書いたように、
Elastic Beanstalk(EB)のMySQLへ接続できるようになったので、
MySQLを使ってアカウント管理してみたいと思う。
サイト上で、アカウントを登録してログインするところまでやってみたい。
今回は、Node.js+Express+Passport+MySQLの環境で構築する。
ExpressやPassportについての詳細は説明しない。

まずは、AWS-SDKを使用してアプリケーションを作成する。
(詳しくはこの辺を参照)

アカウントは、以下のようにJavaScriptで定義されているとする。

account.js
exports.Account = function(id, username, password, profile_id, created){
    this.id = id;
    this.username = username;
    this.password = password;
    this.profile_id = profile_id;
    this.created = created;
};

exports.Profile = function(profile_id, email, sex, description){
    this.profile_id = profile_id;
    this.email = email;
    this.sex = sex;
    this.description = description;
};

まず準備として、前回の記事を参考にMySQLに接続したら、
以下のSQL文を実行して(コメントは不要)、データベースを用意しておく。

initTables.sql
/* Use Database */
USE ebdb; // Elastic Beanstalkがあらかじめ用意してくれたテーブルを使う。

/* Create Tables */
CREATE TABLE ACCOUNTS
(
    ID INT(12) UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
    USERNAME VARCHAR(255) NOT NULL UNIQUE,
    PASSWORD VARCHAR(200) NOT NULL,
    PROFILEID INT(12) UNSIGNED UNIQUE,
    CREATED DATETIME NOT NULL,

    PRIMARY KEY (ID)
) COMMENT = 'User Accounts';

CREATE TABLE PROFILES
(
    ID INT(12) UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
    EMAIL VARCHAR(255),
    SEX enum ('male', 'female', 'other') default 'other',
    DESCRIPTION TEXT,

    PRIMARY KEY (ID)
) COMMENT = 'Profiles';

/* Create Indexes */
CREATE UNIQUE INDEX USER_IDX ON ACCOUNTS (USERNAME ASC);
CREATE INDEX ACCOUNT_IDX ON ACCOUNTS (ID ASC);
CREATE UNIQUE INDEX PROFILE_IDX ON PROFILES (ID ASC);

続く

10
10
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
10
10