mysql 我试图连接到数据库,但connect()函数似乎不起作用

mwkjh3gx  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(74)
const express = require('express')
const app = express()
// const mysql = require('mysql')
const mysql = require('./db')()
const cors = require('cors')
require('dotenv').config(); 
const port = process.env.PORT || 5000

app.use(express.json())
app.use(cors())

app.listen(port, () => console.log(`${port}`))

app.get('/', (req, res) => {
  res.send("hi")
})

const connection = mysql.init()
mysql.open(connection)

这是我的server.js代码

const mysql = require('mysql')
require('dotenv').config(); 

module.exports = function() {
  return {
    init: function () {
      return mysql.createConnection({
        host: process.env.HOST,
        user: process.env.USER,
        password: process.env.PASSWORD,
        database: process.env.DATABASE,
        port: process.env.PORT
      })
    },

    open: function(con) {
      con.connect(function(err) {
        // if (err) throw err
        // console.log('Connected!')
        if(err) {
          console.log('mysql connection error: '+err)
        } else {
          console.log('mysql is connected successfully.')
        }
      })
    }
  }
}

这是我的db.js代码
我期望在执行这段代码时打印出端口号和消息“mysqlisconnectingsuccessfully”。但是当我运行它的时候,除了端口号什么都不输出。甚至没有错误消息。
所以我无法验证数据库连接是否正确。为什么connect()函数的内容没有被执行?

9fkzdhlc

9fkzdhlc1#

您对服务器端口和数据库端口使用了相同的环境变量。请在.env文件中将数据库端口的变量名PORT更改为DB_PORT。然后在db.js文件的数据库端口中更改环境变量名。
db.js

const mysql = require("mysql");
require("dotenv").config();

module.exports = function () {
  return {
    init: function () {
      return mysql.createConnection({
        host: process.env.HOST,
        user: process.env.USER,
        password: process.env.PASSWORD,
        database: process.env.DATABASE,
        port: process.env.DB_PORT,
      });
    },

    open: function (con) {
      con.connect(function (err) {
        // if (err) throw err
        // console.log('Connected!')
        if (err) {
          console.log("mysql connection error: " + err);
        } else {
          console.log("mysql is connected successfully.");
        }
      });
    },
  };
};

example .env file

PORT=8080
HOST=localhost
USER=root
PASSWORD=root
DATABASE=dbname
DB_PORT=3306

相关问题