Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

Ubuntu + Node.js + Express の環境から、外部DB(MySQL)へ接続しデータを表示する

$
0
0

前回、Expressの環境は作ったので、その環境で作業する。

MySQL をインストールする

Expressの環境にMySQLデータベースを置くんじゃなくて、参照用に必要。

npm install mysql --save

test.js を作る

app.js 作ってたフォルダ内で、test.js を作る

test.js
constmysql=require('mysql');constcon=mysql.createConnection({host:'192.168.123.223',user:'root',password:'root',database:'test_database'});con.connect((err)=>{if(err)throwerr;console.log('Connected');con.query('select * from test_table',function(error,results,fields){if(error)throwerror;console.log(results[0]);});});

node.js で実行

  • node test.js を起動

うまく接続出来れば、↓のようになるはず。

$ node test.js
Connected
RowDataPacket {
  id: 1,
  name: 'TOM',
  created_at: 2020-02-05T15:00:00.000Z,
  updated_at: 2020-02-05T15:00:00.000Z
}
  • 接続できなくてエラーになった場合
    • Vagrantfile に config.vm.network "private_network", ip: "192.168.123.223"が記載されているか?
    • 特に Vagrantfile をいじくって無ければ、この設定だけで接続できる。
      • Vagrantfile については、コレを参照してください。
      • VirtualBox の設定で言うと、「NAT」と「ホストオンリーアダプター」の2種類のネットワーク設定が必要

app.js を修正する

前回作った app.js を修正して、MySQLのデータを参照する

app.js
varexpress=require('express');varapp=express();varmysql=require('mysql');varconnection=mysql.createConnection({host:'192.168.123.223',user:'root',password:'root',database:'test_database',debug:false,});app.get('/',function(req,res){connection.connect();connection.query('select * from test_table',function(error,results,fields){if(error){connection.end();throwerror;}res.send(results[0]);});connection.end();});app.listen(3000,function(){console.log('Example app listening on port 3000!');});

node.js で実行

  • node app.js を起動

実行すると、コンソールにはコレが出る

Example app listening on port 3000!

ブラウザで、 http://192.168.123.223:3000にアクセスすると、
image.png
こんなのが出るはず。

これで、ようやくExpressからMySQLへ接続し、データが参照できるようになった。

参考


Viewing all articles
Browse latest Browse all 8691

Trending Articles