【发布时间】:2023-01-31 18:54:08
【问题描述】:
我有一个 Node.js Stackblitz 项目,我正在尝试连接到远程 MySQL 数据库。在 Stackblitz 中不可能有 MySQL 数据库,因此尝试远程方法。但是,每当我尝试连接时,我都会收到“错误:连接 ETIMEDOUT”。非常感谢任何帮助或指点。
我正在使用下面的代码。可以使用我正在使用的凭据访问远程数据库,并在 Stackblitz 外部使用时返回数据。 Stackblitz 无法进行远程数据库访问,还是我遗漏了什么?
const express = require('express');
const mysql = require('mysql2/promise');
const app = express();
const port = 3010;
const path = require('path');
app.use(express.static('static'));
app.get('/', async function (req, res) {
try {
// create connection
const connection = await mysql.createConnection({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
// query database
const [rows, fields] = await connection.execute('SELECT * FROM `user`');
res.send({
rows,
fields,
});
} catch (err) {
console.log('err:', err);
}
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
【问题讨论】:
标签: mysql node.js express stackblitz