mysql - mysql.connect 永远不会返回
问题描述
const mysql = require('mysql');
const dbCon = mysql.createConnection({
host: "localhost",
user: "mainUser",
password: "pa55",
database: "testDB"
});
dbCon.connect(function (err) {
if (err) throw err;
console.log("Connected to DB");
});
当我运行它时,我看到“已连接到数据库”日志,但程序永远不会完成或退出,就像它在等待什么一样。
解决方案
让我们尝试获取下面的代码并将其保存到“dbConnect.js”文件中,然后运行 node-command:
> node dbConnect.js
您将看到结果。
const mysql = require('mysql');
const dbCon = mysql.createConnection({
host: "localhost",
user: "mainUser",
password: "pa55",
database: "testDB"
});
dbCon.connect(function(err) {
if (err) {
return console.log(err.message);
}
console.log('Connected to the MySQL server.');
});
let dbCreateQuery = `
create table if not exists users(
id int primary key auto_increment,
first_name varchar(255)not null,
last_name varchar(255)not null);
`;
let dbInsertQuery = `
insert into users (first_name, last_name)
values ('john', 'smith');
insert into users (first_name, last_name)
values ('jane', 'smith');
`;
let dbSelectQuery = `
select *
from users
`;
//test of create query execute
dbCon.query(
dbCreateQuery,
function(err, results, fields) {
if (err) {
console.log(err.message); //execution error
}
else {
console.log('Table "users" has been created';
}
});
//test of insert query execute
dbCon.query(
dbInsertQuery,
function(err, results, fields) {
if (err) {
console.log(err.message); //execution error
}
else {
console.log('Table "users" has been filled';
}
});
//test of select query execute
dbCon.query(
dbSelectQuery,
function(err, results, fields) {
if (err) {
console.log(err.message);
}
else {
console.log('Data rows from table "users" has been extracted';
console.log(results); // data rows
console.log(fields); // meta of fields
}
});
/*
Also, recommended use 'end()' method for closing connection to database after running operations.
*/
dbCon.end(function(err) {
if (err) {
return console.log(err.message);
}
console.log('Close the MySQL server connection.');
});
/*
Then use 'destroy()' method for close connection immediately, it's
guarantees that no more callbacks or events will be triggered for the connection,
i.e. method does not take any callback argument like the end() method.
*/
dbCon.destroy();
推荐阅读
- javascript - 两个数组的最小值以创建一个新数组
- c# - 从字符串中删除前导零
- reactjs - 带有 react-google-maps API 的谷歌地图
- java - 如何跳过某个数字并继续?
- java - 使用 Selenium WebDriver 的新选项卡
- python - 我想计算数据框中的 python 列表的元素,并将输出作为数据框中的一列。我怎么做?
- python - MongoDB 聚合每次返回随机结果 (PyMongo)
- javascript - 如何重复一个javascript函数以及如何反转一个
- python - 如何从日志文件中获取姿势和 4x4 矩阵并将它们保存为 JSON 文件?
- python - Elif 和其他问题 - Discord 机器人