首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图连接到DB,但connect()函数似乎不起作用

我试图连接到DB,但connect()函数似乎不起作用
EN

Stack Overflow用户
提问于 2022-09-11 02:09:09
回答 1查看 50关注 0票数 1
代码语言:javascript
复制
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代码。

代码语言:javascript
复制
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代码..。

我希望在执行此代码时打印端口号和消息"mysql已成功连接“。但是当我运行它时,除了端口号之外,没有任何输出。甚至是错误信息。

因此,我无法验证数据库连接是否正确。为什么未执行connect()函数的内容?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-11 04:42:11

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

db.js

代码语言:javascript
复制
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

代码语言:javascript
复制
PORT=8080
HOST=localhost
USER=root
PASSWORD=root
DATABASE=dbname
DB_PORT=3306
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73676363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档