前回、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種類のネットワーク設定が必要
- Vagrantfile に
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にアクセスすると、
こんなのが出るはず。
これで、ようやくExpressからMySQLへ接続し、データが参照できるようになった。