ExpressのTypescriptにおける型定義
現在Express + TypeScriptを使用してAPIサーバーを構築中です。
その中で、dbの接続部分をmodlue化して作成しています。
それを他のファイルで使う際に、いちいちmysqlを宣言しないと
any型とエラーを吐いてしまいます。
もし、解決方法をご存知の方がいらっしゃいましたら
ご教授お願いいたします。
db.js
import express from 'express'
import mysql from 'mysql2'
import { config } from '../config/default'
export const dbConnection = (app: express.Express) => {
const con = mysql.createConnection({
host: config.DBConfig.Host,
user: config.DBConfig.Username,
password: config.DBConfig.Password,
database: config.DBConfig.DataBase,
})
con.connect((err) => {
try {
if (err) throw err
console.log('connected')
} catch (error) {
console.log('Error: ', error)
}
})
// ここでconst db = req.app.get("db")をしたときに、方がmysqlになるようにしたい
app.set('db', con)
}
index.ts
import { Router } from 'express'
const router = Router()
router.get('/', (req, res) => {
const db = req.app.get('db')
// 下記のerror,responseの箇所がany型でエラーになる
db.query('SELECT * FROM MOVIE',(error, response) => {
if (error) throw error
console.log(response)
res.status(200).send(response)
}
)
})
export default router
0 likes