我正在运行一个带有节点js的应用程序(更具体地说是表达js),我用mysql客户端保存了一些数据。
它完美地工作了一段时间没有任何问题,但随后所有的suddden我得到这些错误:
跟踪:致命错误后无法将Quit排入队列。 在Protocol._validateEnqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:218:11) 在Protocol._enqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:135:13) 在Protocol.quit(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:88:23) 在PoolConnection.end(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ Connection.js:255:18) 在Pool._purgeConnection(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ Pool.js:259:16) 在PoolConnection._removeFromPool(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ PoolConnection.js:70:8) 在PoolConnection。 (C:\的NodeJS \十二发型\ node_modules \ MySQL的\ lib中\ PoolConnection.js:29:12) 在emitOne(events.js:77:13) 在PoolConnection.emit(events.js:169:7) 在PoolConnection.Connection._handleProtocolError(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ Connection.js:439:8) 跟踪:致命错误后无法将查询排入队列。 在Protocol._validateEnqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:218:11) 在Protocol._enqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:135:13) 在PoolConnection.query(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ Connection.js:214:25) 在Object.fetchDatas(C:\ nodejs \ twelve-coiffure \ public \ javascripts \ twelvebase.js:94:12) 在C:\ nodejs \ twelve-coiffure \ routes \ index.js:7:7 在Layer.handle [as handle_request](C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ layer.js:95:5) 在下一个(C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ route.js:131:13) 在Route.dispatch(C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ route.js:112:3) 在Layer.handle [as handle_request](C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ layer.js:95:5) 在C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ index.js:277:22 C:\的NodeJS \十二发型\ PUBLIC \ JavaScript的\ twelvebase.js:26 扔(消息); ^
错误:致命错误后无法将查询排入队列。 在Protocol._validateEnqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:199:16) 在Protocol._enqueue(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:135:13) 在PoolConnection.query(C:\ nodejs \ twelve-coiffure \ node_modules \ mysql \ lib \ Connection.js:214:25) 在Object.fetchDatas(C:\ nodejs \ twelve-coiffure \ public \ javascripts \ twelvebase.js:94:12) 在C:\ nodejs \ twelve-coiffure \ routes \ index.js:7:7 在Layer.handle [as handle_request](C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ layer.js:95:5) 在下一个(C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ route.js:131:13) 在Route.dispatch(C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ route.js:112:3) 在Layer.handle [as handle_request](C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ layer.js:95:5) 在C:\ nodejs \ twelve-coiffure \ node_modules \ express \ lib \ router \ index.js:277:22
问题是我真的无法在我的代码中找到问题的来源,而且我甚至不知道为什么有时会在工作中,有时候也不会。
以下是启动数据库的代码:
var mysql = require('mysql');
var dbPool = mysql.createPool({
connectionLimit: 50,
waitForConnections: true,
queueLimit: 0,
host: '*my host*',
user: '*me*',
password: '*my password*',
database: '*heroku database*',
wait_timeout:28800,
connect_timeout:10,
debug:true
});
dbPool.getConnection(function(err, connection) {
if (err) throw (err);
var db = connection;
fetchDatas = function(callback) {
// openDatabase();
var servicesFemmes, servicesHommes, products;
db.query("SELECT * FROM servicesFemmes", function(err, servicesFemmes, fields) {
if (err) {
callback(sendError(err));
} else {
db.query("SELECT * FROM servicesHommes", function(err, servicesHommes, fields) {
if (err) {
callback(sendError(err));
} else {
db.query("SELECT * FROM produits", function(err, products, fields) {
if (err) {
callback(sendError(err));
} else {
db.query("SELECT * FROM carousel", function(err, carousel, fields) {
if (err) {
callback(sendError(err));
} else {
callback(null, servicesFemmes, servicesHommes, products, carousel);
}
});
}
});
}
});
}
});
}
}
}
当然,我从另一个文件调用fetchDatas()来获取要显示的所有数据。
答案 0 :(得分:0)
对我来说,我之所以收到此错误,仅仅是因为MySql服务器未运行,因此检查该值是一个好主意