首页 > 解决方案 > 从nodejs连接Mysql时出错

问题描述

我最近启动了 node-js,我试图将我的 nodejs 服务器与 mysql 连接起来。问题是我收到一个错误,我真的不知道为什么,我正在使用 phpmyadmin。

phpmyadmin 详细信息

用户:根

主机:本地主机

未设置密码

这是我的 phpmyadmin 数据库的图像

这是我的 phpmyadmin 控制台的设置

这是连接到数据库时显示错误的终端

index.js

    var express = require("express");
    var app = express();
    var mysql = require('mysql');

     var port = process.env.PORT || 3000;

     var connection = mysql.createConnection({
     host: "localhost",
     user: "root",
     database: "learning",
     });

   connection.connect(function(err){
    if(err) {
   console.log('Error connecting to Db');
    return;
    }

  console.log('Connection established');
  console.log('3');

  connection.end(function(err) {
  console.log('Connection closed');
  console.log('4');

  process.exit();
  });
  });

  app.listen(port,function(err1){
  console.log("Listening on the port 3000");
  });

标签: mysqlnode.js

解决方案


从节点 js 连接到 mysql,您用于从节点 js 连接到 mysql

/config
  /database.js
/server.js
/.env

const http = require('http');
const app = require('express')();
require('./config/database.js');
const bodyParser = require('body-parser');
const server = http.createServer(app);

server.listen(process.env.ServerPort, '0.0.0.0', () => {
  logger.info(`Express server listening on port ${process.env.ServerPort}`);
});

当你运行这个:

node server.js

数据库.js 文件

const My = require('jm-ez-mysql');

// Init DB Connection
const connection = My.init({
  host: process.env.DBHOST,
  user: process.env.DBUSER,
  password: process.env.DBPASSWORD,
  database: process.env.DATABASE,
  dateStrings: true,
  charset: 'utf8mb4',
  timezone: 'utc',
  multipleStatements: true,
  connectTimeout: 100 * 60 * 1000,
  acquireTimeout: 100 * 60 * 1000,
  timeout: 100 * 60 * 1000,
});

module.exports = {
  connection,
};

推荐阅读