体重133キロからのプログラミング

体重はちょっと減って今125キロです。

Express HelloWorld ~ Connect MySQLまで

何?

最近ガンプラにハマったけど転売がひどすぎる。
バンダイさんが公式で出荷予定を毎月pdfで公開して下さってるようなので、それを解析してLINEでどうのこうのするアプリを作成する。

要件

  • バンダイ公式の出荷予定pdfを解析するアプリケーション
    • 日に1度アクセスして解析
    • 解析結果をDBに保存
    • 納品前日と当日にLINEで通知
      • この辺の塩梅は後々調整する
      • 商品名送信すると納品日返すとかもやりたい
    • 納品日時を一覧表示するフロントも作る

スクレイピングを含むため、個人使用のみ。

Express Install ~ HelloWorld

  • install
$ npm init -y

※-yは対話モードをスキップするオプション

$ npm install express
  • app.js
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
$ node app.js

便利系

  • nodemon
    • nodeアプリケーションを更新すると直ちに反映してくれる。
$ npm install nodemon
$ npx nodemon app.js

MySQL

$ npm install mysql
  • app.js
.
.
.
const mysql = require('mysql');

const con = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: ''
});

con.connect(function(err) {
  if (err) throw err;
  console.log('Connected');
});

MySQLが8系だとうまく繋げない場合があるようで、そういう時はパスワードを空に設定するといいっぽい。
参考にした記事では何の説明もなしに「以下を実行してください」みたいに書いてあって、結構怖くね?と思った。(僕は気にしないですが気にする人は気にしそう)

参考

https://reffect.co.jp/node-js/express-js-connect-mysql
CREATE TABLEもexpress上で実行するような手順になっているため、半月後にこの記事を読んで全てを忘れている僕は気をつけてください。
明日はテーブル設計していきまする。

ここまでのコード

https://github.com/JunpeiKatayama/g-notice