Я пытаюсь сделать REST api в узле с помощью экспресс. Когда я открываю URL-адрес в браузере в первый раз, он работает нормально и дает правильный результат. Но когда я попал в апи URL во второй раз, приложение падает с ошибкой:Узел js mysql query дает ошибку при выполнении второй раз
events.js:141 throw er; // Unhandled 'error' event ^
Error: Cannot enqueue Handshake after invoking quit.
Это код, я использую:
var express = require('express');
var mysql = require('mysql');
var app = express();
var connection = mysql.createConnection({
host: 'localhost',
user: 'USER_NAME',
password: 'PASSWORD'
});
app.use(express.static(__dirname + '/public'));
var port = 3333;
app.get('/api/users/:user_id', function(req, res){
var lead_id = req.params.user_id;
connection.connect();
connection.query('use DB_NAME;', function (err) {
if(err) throw err;
connection.query('select * from users where user_id = ' + user_id, function (err, rows) {
if(err) throw err;
res.json(rows);
connection.end();
});
});
});
app.listen(port);
console.log("The app is running on port " + port);
Может кто-нибудь сказать мне, что я делаю неправильно ?
Рассмотрите возможность использования пула вместо одного соединения. Если вы хотите, чтобы соединение использовало pool.getConnection(), и когда вы закончите с ним, используйте connection.release(); – Dave