首页 > 解决方案 > Express 永远加载 mySQL 查询?

问题描述

我正在尝试从 28k 记录数据库中查询一行作为测试,但它没有通过,但是当我加载 'localhost:3001/api/get' 时它会保持加载,即使我的连接说成功?它实际上甚至连接到数据库吗?

我的数据库架构是:

编号 | 州名 | 城市

const bodyParser = require('body-parser');
const express = require('express');
const app = express();
const mysql = require('mysql');
const cors = require('cors');

const db = mysql.createPool({
    host: "localhost",
    user: "root",
    password: "password",
    database: "states_city"
});

app.use(cors());
app.use(express.json());
app.use(bodyParser.urlencoded({extended:true}));


app.get('/api/get', (req, res)=>{
    const sqlGet = "SELECT city FROM state_city city = 'Chicago'";
    db.query(sqlGet, (err, res)=>{
        console.log("success");
    });
});

app.listen(3001, ()=>{
    console.log("running on port 3001");
});

标签: mysqlnode.jsexpressdatabase-connection

解决方案


首先,您必须使服务器运行。删除您在运行服务器之前设置的 API 路由。

    app.listen(3001, ()=>{
        console.log("running on port 3001");
    });

现在您必须创建数据库连接。创建新文件dbconn.js

    var mysql = require('mysql');
    
    const db = mysql.createPool({
        host: "localhost",
        user: "root",
        password: "password",
        database: "states_city"
    });

现在创建新连接:

    var new_connection = mysql.createPool(
      db
    );
    
    new_connection.on('connection', function (connection) {
      console.log('DB Connection established');
    
      connection.on('error', function (err) {
        console.error(new Date(), 'MySQL error', err.code);
      });
      connection.on('close', function (err) {
        console.error(new Date(), 'MySQL close', err);
      });
    
    });
    
    // export connection
    module.exports = new_connection;

在其他文件中包含该连接:

    var db_connection = require('../dbconn');
    db_connection.query(query, params, function (error, results, fields) {
        //Do your query
    });

阅读项目结构以使您的代码易于编辑。


推荐阅读