我正在尝试使用express在节点中创建REST api。当我第一次在浏览器中打开网址时,它运行正常,并给我正确的输出。但是当我第二次点击api url时,应用程序崩溃并出现错误:
events.js:141 扔掉//未处理的'错误'事件 ^
错误:调用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);
有人能告诉我我做错了什么吗?
答案 0 :(得分:4)
只需删除connection.connect()
和connection.end()
即可。然后它应该工作。
connection.connect()
应该被调用一次或不被调用。因为connection.query
会连接,所以它没有连接。
PS - 当连接丢失时需要调用connection.connect()
。
答案 1 :(得分:0)
尝试this删除还原剂连接。这是谷歌搜索错误消息的第一个结果 - 在询问之前总是尝试谷歌错误消息。