@akamaru (あかまる)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

No Answers yet.

Your answer might help someone💌