NextJSでMySQLを使う

IQZeus

NextJSでMySQLを使うには?

始めに結論から言ってしまうと、NextJSでMySQLを使うにはserverless-mysqlを使用するのが最も簡単です。今回は、私が実際に使用しているプログラムを例に使い方を簡単に紹介していきたいと思います。

db.jsのプログラム

まずはserverless-mysqlのインストールを行います。

npmを使っている場合は

npm i serverless-mysql

でインストールできます。

次は簡単にMySQLを使えるようにモジュールを作成してしまいましょう。

と言っても以下のコードをコピーするだけです。

const mysql = require('serverless-mysql')

const db = mysql({
  config: {
    host: process.env.MYSQL_HOST,
    database: process.env.MYSQL_DATABASE,
    user: process.env.MYSQL_USER,
    password: process.env.MYSQL_PASSWORD
  }
})

exports.query = async query => {
  try {
    const results = await db.query(query)
    await db.end()
    return results
  } catch (error) {
    return { error }
  }
}

.envにホスト名等は入れておいてください。

これでqueryを呼び出すだけでSQL文を実行できる様になります。

呼び出して使う

const db = require('./db')

export default async (name) => {
  const result = await db.query(`
    SELECT * FROM hoge where username=${name}
  `)
  return result
}

私は関数としてAPIから呼び出せるようにしているのでこんな感じになりましたが(この後も色々処理をしていましたがそれは省略しました)、queryだけでも呼び出せるので汎用性は高いと思います。

最後に

何か分からなければコメントいただければ気づいた時に回答します。

誰かのお役に立てれば幸いです!

それでは!

コメント

タイトルとURLをコピーしました