【问题标题】:Cannot connect to MySQL using NodeJS, Express无法使用 NodeJS、Express 连接到 MySQL
【发布时间】:2021-03-30 10:25:13
【问题描述】:

我正在尝试使用服务器的 express 通过 nodeJS 应用程序连接到 MySQL,我阅读了 mysql npm 文档以开始连接,但似乎我从我在 createConnection.connect() 中编写的回调函数中得到了错误我使用 phpmyadmin 只是为了查看结果和图表

这是我的代码:

const express = require('express');
const app = express();
const mysql = require('mysql'); 
require('dotenv').config();
const workers = require('./routes/workers');


app.use('/', workers);


const DB = mysql.createConnection({
    host     : 'localhost',
   user     : 'root',
  charset: 'utf8_general_ci',
  password: '',

});

DB.connect((err) => {
     throw `error: ${err}`
 });

 app.listen(process.env._PORT, () => {
     console.log(`Server is running on ${process.env._PORT}`);
 });

【问题讨论】:

  • 你能在连接数据库时分享你的错误吗?
  • 请告诉我们错误详情,我更喜欢mysql2而不是mysql
  • 错误:错误:连接 ECONNREFUSED 127.0.0.1:3306

标签: javascript mysql node.js express phpmyadmin


【解决方案1】:

连接后您没有检查错误。您必须检查数据库连接时是否有任何错误,如下所示。

DB.connect((err) => {
     if(err){
        throw `error: ${err}`       
     }
     console.log("Database connected successfully");
 });

【讨论】:

    【解决方案2】:

    安装sequelizejs、mysql、mysql2库

    var Sequelize = require('sequelize');
    var sequelize = new Sequelize(dbName, username, password,{ host: localhost,
        // data type
        dialect: mysql,
    });
    

    可以使用 .authenticate() 函数来测试连接是否正常:

    try {
      await sequelize.authenticate();
      console.log('Connection has been established successfully.');
    } catch (error) {
      console.error('Unable to connect to the database:', error);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 2018-03-08
      • 1970-01-01
      • 2023-03-19
      • 2014-11-06
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多