node express api报错
这是请求的方法
app.get('/api/:id', function (req, res) {
connection.connect();
connection.query('SELECT * from testmodel_url WhERE id='+req.params.id, function(err, rows, fields) {
if (err) throw err;
let obj={
'status':200,
'message':'success',
'data':rows
}
res.json(obj)
});
connection.end();
});
使用postman第一次请求可以获得正确的结果
再次请求就会报错
events.js:182
throw er; // Unhandled 'error' event
^
Error: Cannot enqueue Handshake after invoking quit.
at Protocol._validateEnqueue (C:\bin\pro\express\node_modules\_mysql@2.15.0@
mysql\lib\protocol\Protocol.js:204:16)
at Protocol._enqueue (C:\bin\pro\express\node_modules\_mysql@2.15.0@mysql\li
b\protocol\Protocol.js:139:13)
at Protocol.handshake (C:\bin\pro\express\node_modules\_mysql@2.15.0@mysql\l
ib\protocol\Protocol.js:52:23)
at Connection.connect (C:\bin\pro\express\node_modules\_mysql@2.15.0@mysql\l
ib\Connection.js:130:18)
at C:\bin\pro\express\index.js:29:16
at Layer.handle [as handle_request] (C:\bin\pro\express\node_modules\_expres
s@4.16.3@express\lib\router\layer.js:95:5)
at next (C:\bin\pro\express\node_modules\_express@4.16.3@express\lib\router\
route.js:137:13)
at Route.dispatch (C:\bin\pro\express\node_modules\_express@4.16.3@express\l
ib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\bin\pro\express\node_modules\_expres
s@4.16.3@express\lib\router\layer.js:95:5)
at C:\bin\pro\express\node_modules\_express@4.16.3@express\lib\router\index.
js:281:22
这是为什么呢求解答 0.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你要在每个请求完成之后调用 createConnection 再一次创建一个新的连接实例,就是类似于工厂函数,你得在响应请求函数的第一句再一次调用你创建你的
connection
的方法,为新请求再创建一个连接实例把connection.end();去掉
参考http://blog.csdn.net/luominti...
从文字上讲connection.query是异步操作,为什么没返回结果就执行connection.end();