MENU
  • 無料レッスンLesson
  • プロフィールprofile
  • サービスService
    • パソコン苦手でも大丈夫!
      ホームページ作成個人レッスン
    • 起業女性の悩みに寄り添う
      WEB活用の個別相談
  • 実績・お客さまの声portfolio
  • ブログblog
  • お問合せcontact

カテゴリー

  • WordPressの基本
  • アメブロカスタマイズ
  • Web活用相談
  • ホームページ制作
  • HTML/CSS
  • ブログ運営
  • おしゃれデザインの作り方
  • ビジネスのヒント
  • WordPressカスタマイズ
  • Web制作スキルアップ
  • アイデア・思考の整理

タグ

Adobe Illustrator Gatsby.js git GitHub HTML/CSS MySQL Node.js Python Sourcetree SWELL WordPress おすすめWPプラグイン おすすめツール アメブロ エックスサーバー サーチコンソール セキュリティ バレットジャーナル ライブドアブログ 環境構築 確定申告 開発環境

アーカイブ

  • 2022年8月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2020年10月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年1月
  • 2019年11月
  • 2019年9月
  • 2019年8月
  • 2019年5月
  • 2019年2月
  • 2019年1月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2017年10月
  • 2017年9月
  • 2017年7月
個人事業主・女性起業家のホームページ作成(WordPress)レッスン
WordPressを使ったホームページ制作・個人レッスン 中谷恵美
  • 無料レッスンLesson
  • プロフィールprofile
  • サービスService
    • パソコン苦手でも大丈夫!
      ホームページ作成個人レッスン
    • 起業女性の悩みに寄り添う
      WEB活用の個別相談
  • 実績・お客さまの声portfolio
  • ブログblog
  • お問合せcontact
WordPressを使ったホームページ制作・個人レッスン 中谷恵美
  • 無料レッスンLesson
  • プロフィールprofile
  • サービスService
    • パソコン苦手でも大丈夫!
      ホームページ作成個人レッスン
    • 起業女性の悩みに寄り添う
      WEB活用の個別相談
  • 実績・お客さまの声portfolio
  • ブログblog
  • お問合せcontact
  1. ホーム
  2. Web制作スキルアップ
  3. Node.js+ExpressでMySQLに接続して一覧表示する

Node.js+ExpressでMySQLに接続して一覧表示する

2022 3/26
Web制作スキルアップ
2020-04-25 2022-03-26


Node.jsとMySQLを接続して、データベースを動かす方法を説明します。

この記事でわかること
  • MacでのMySQLの導入方法
  • Node.js(Express)からMySQLデータベースに接続するプログラム
  • データベースから情報を取得して、表示するプログラム
前提
  • Macでの操作になります
  • Node.jsはインストール済み
目次
  1. Node.js用のプロジェクトを作成する
  2. MySQLデーターベースの作成
    1. Node.jsでMySQLへ接続するプログラム
    2. MySQLに接続できているか、プログラムを実行して確認
  3. データベースの情報を取得して表示するNode.jsプログラム
    1. Node.jsプログラムの実行結果

Node.js用のプロジェクトを作成する

PC上に新しいフォルダを作成し、フォルダの中で、下記コマンドを順に実行します。

npm init

設定はデフォルトのままで、entry point : (index.js)のところは、「app.js」としました。
app.jsは初期ファイル名です

Expressのインストール

npm install express --save

EJSのインストール
ejsを導入することで、HTMLにJavaScriptを埋め込めるようになります。

npm install ejs

MySQLのインストール

npm install mySQL

MySQLデーターベースの作成

(MySQLをインストールしていない場合)MySQLをインストールします。

brew install mysql

MySQLサーバーを立ち上げます。

-- MySQLサーバースタート
mysql.server start

コンソールがmysql>となり、MySQLを操作できるようになります。

MySQLへログインします。

-- MySQLへログイン
mysql -uroot -p

ポート番号を確認します。

-- ポート番号の確認
show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+

ここで出てきた、3306はあとでプログラムを書く時に、ポート番号として使います。

まずはプログラムで使う、データベースとテーブルを作成します。
テスト用のデータベース作成します。

-- データベースtest作成
create database test;

testにテーブルitemsを作成します。

-- テーブル作成
use test;
CREATE TABLE items(
     id INT(11) AUTO_INCREMENT NOT NULL,
     name VARCHAR(30) NOT NULL ,
     PRIMARY KEY (id));

作成したテーブル情報を確認します。

DESC items;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| name  | varchar(30) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

テーブルにデータを投入します。

これで、こんなテーブル(items)ができています。

-- データ投入
INSERT items(name) VALUES ('じゃがいも');
INSERT items(name) VALUES ('にんじん');
INSERT items(name) VALUES ('たまねぎ');

ユーザーを作り、ユーザー権限を付与します。

-- ユーザー作成、権限付与
create user 'root'@'localhost' identified with mysql_native_password by 'password';
GRANT ALL ON test.* TO 'root'@'localhost';

root →ユーザー名
password →パスワード
test → データベース名
をいれてください。

MySQL8.0の場合、Node.jsのmysqlが新しいパスワードの認証形式に対応していないため、ユーザーの設定ができていないと実行エラーがでてしまいます。

Node.jsでMySQLへ接続するプログラム

const express = require('express');
const mysql = require('mysql');
const app = express();

app.use(express.static('public'));

// データベース接続情報
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'password',
  database: 'test'
});

// データベースに接続できたらコンソールにConnectedを表示
connection.connect(function(err) {
  if (err) throw err;
  console.log('Connected');
});

app.listen(3000);

データベース接続情報は各自の環境に変更ください

  • port:先ほどMySQLで確認したポート番号3306を設定
  • userアカウント名
  • password:パスワード
  • database:データベース名

MySQLに接続できているか、プログラムを実行して確認

ターミナルでプログラムを実行します。

うまくいっているとターミナル上に「Connected」と表示されています。

$node app.js

確認できたら、Ctrl + cで終了。

データベースの情報を取得して表示するNode.jsプログラム

続いて、テーブルからデータをSELECTして画面に表示するプログラム

projectフォルダ構造はこのようになっています。

const express = require('express');
const mysql = require('mysql');
const app = express();

// データベース接続情報
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'root',
  database: 'list_app'
});

// テーブルitemsのデータを取得してindex.ejsで表示
app.get('/', (req, res) => {
  connection.query(
    'SELECT * FROM items',
    (error, results) => {
      res.render('index.ejs',{items:results});
    }
  );
});

app.listen(3000);
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SAMPLE</title>
  </head>
  <body>
      <ul>
        <% items.forEach((item) => { %>
          <li>
            <div>
              <span><%= item.id %></span>
              <span><%= item.name %></span>
            </div>
          </li>
        <% }) %>
      </ul>
  </body>
</html>

Node.jsプログラムの実行結果

ターミナルでプログラムを実行します。

$node app.js

localhost:3000にアクセスするとデータベースの内容がリストで表示されています。(いろいろ操作してたら、とまととだいこんの行が増えてました😅)

最後に、MySQLを終了するときは「exit」で。

 exit
Web制作スキルアップ
MySQL Node.js
よかったらシェアしてね!
  • 【はじめてのNode.js】環境構築からプログラムを動かす手順をていねいに解説!
  • 【Python】Livedoorブログの画像を一括ダウンロードするプログラム

関連記事

  • 【図解】WordPressのテーブル構造はどうなっているの?
    2021-12-03
  • WordPressの投稿に管理者用メモをいれるプラグインを作る
    2021-11-29
  • 記事をランダム表示するウィジェットを作る
    2021-11-27
  • WordPressプラグインを作ってみる。はじめの一歩。
    2021-11-10
  • 【Mac】Localなら超簡単!WordPressのローカル環境を作る。
    2021-10-07
  • GatsbyJSサイトをv3へアップデート
    2021-08-23
  • 【Mac】Node開発環境のアップデート
    2021-08-06
  • 【Mac】SourcetreeからGitHubへSSH接続する
    2021-08-05
中谷恵美
あなたのお仕事を育てるホームページの先生
システムエンジニア、ITコンサルタントを経て、フリーランスに。
ITが苦手な女性の個人事業主さんにホームページ作成・集客・Web活用をトータルでサポートしています。

仕事の戦略、ホームページの作成やWebツールの整理、操作の疑問など、さまざまなお困りごとにお答えします。
詳しいプロフィールを見る
活動実績

【HP個人レッスン】

●ハワイアン伝統ロミロミサロン・Aさま
・2ヶ月でサロンのHPをリニューアル。新サービス立上げ時も自分でHPを作成できるように。
「最初はパソコン音痴の私にできるか不安でしたが、とても丁寧な指導でわかりやすかったです。
私好みの素敵なHPができあがり、とっても嬉しいです!」

●Mさま
・2回のミーティングでWordPress運営スキルを習得。オウンメディアを立上げ。

●Sさま
・5日間で無料ブログからWordPressへのお引越し。
「半ば諦めかけていた移管を短期間で終えることが出来ました」

【ホームページ作成】

●これまでご依頼いただいたお客さま
(個人)写真家・サロン・カウンセラー・占い師

(法人)メーカー代理販売店、コンサルティング企業、人事支援企業

【経歴・資格など】
・基本情報技術者
・簿記2級

新着記事
  • 【お客様の声】フワッとした質問に対しても具体的に教えてくれます。
    2022-08-14
    Web活用相談
  • 株式会社 ビードゥー様 (BeDoh Corporation)
    2022-04-11
    ホームページ制作
  • 【2022年版】Smash Balloon Social Photo Feedの使い方〜インスタグラムを表示できるプラグイン〜
    2022-03-25
    WordPressの基本
  • AIが自動で文字起こし!「Notta」で議事録、原稿作成、勉強を効率的に!
    2022-03-11
    ビジネスのヒント
  • 2021年の確定申告は、スマホで申告!
    2022-02-16
    ビジネスのヒント
人気記事
  • 【CSSコピペOK】おしゃれな引用blockquoteデザイン10選
    2018-09-13
    アメブロカスタマイズ
  • 【Mac】SourcetreeからGitHubへSSH接続する
    2021-08-05
    Web制作スキルアップ
  • CSSとJavaScriptで作るハンバーガーメニュー
    2020-07-25
    Web制作スキルアップ
  • Node.js+ExpressでMySQLに接続して一覧表示する
    2020-04-25
    Web制作スキルアップ
  • デザインのドリルで30個トレースして学んだこと
    2020-08-20
    おしゃれデザインの作り方
メニュー
  • 無料レッスン
  • プロフィール
  • サービス
    • パソコン苦手でも大丈夫!
      ホームページ作成個人レッスン
    • 起業女性の悩みに寄り添う
      WEB活用の個別相談
  • 実績・お客さまの声
  • ブログ
  • お問合せ
カテゴリー
  • 実績・お客様の声 (10)
    • Web活用相談 (1)
    • ホームページ制作 (9)
  • WEB・SNS集客 (2)
    • ブログ運営 (2)
  • はじめてのホームページ作成 (16)
    • WordPressの基本 (12)
    • アメブロカスタマイズ (4)
  • おしゃれデザインの作り方 (5)
  • ビジネスのヒント (7)
  • Web制作スキルアップ (36)
    • HTML/CSS (1)
    • WordPressカスタマイズ (12)
  • アイデア・思考の整理 (2)

タグ
Adobe Illustrator (2) Gatsby.js (3) git (3) GitHub (1) HTML/CSS (7) MySQL (2) Node.js (2) Python (2) Sourcetree (2) SWELL (1) WordPress (28) おすすめWPプラグイン (7) おすすめツール (3) アメブロ (2) エックスサーバー (4) サーチコンソール (1) セキュリティ (3) バレットジャーナル (2) ライブドアブログ (2) 環境構築 (1) 確定申告 (1) 開発環境 (3)
  • サイトマップ
  • プライバシーポリシー
  • 特定商取引法に基づく表記

© Zero*forest

目次
  1. Node.js用のプロジェクトを作成する
  2. MySQLデーターベースの作成
    1. Node.jsでMySQLへ接続するプログラム
    2. MySQLに接続できているか、プログラムを実行して確認
  3. データベースの情報を取得して表示するNode.jsプログラム
    1. Node.jsプログラムの実行結果