2017-07-07 156 views
0

我最近在我的Ubuntu 16.04上安装MySQL。而且我已经成功已经能够使用的命令在命令提示符下创建表,并执行命令,如问题与MySQL节点js

select * from articles 

然而,当我从node.js运行从.js文件中的代码问题出现。命令行之后就冻结了。在下面的图片,在右侧的终端是一个调用select.js文件与节点,而在左边的一个手动调用select * from articles

enter image description here

有趣的是,当我使用insert.js文件,同样的事情发生在右边的终端但是这条线被插入(我可以用左边的终端手动验证)。

问题: 为什么会在右边的终端无法完成执行,并在select * from articles的情况下不显示在文章表中的内容?

+0

能否请您复制快照中的代码粘贴到一个小提琴或SO本身? –

+0

请勿包含文字图像。相反,请将相关文本复制到问题中。这增加了可搜索性,防止图像在某些时候消失,*和*允许其他人帮助您解决问题,因为他们可以在需要时复制和粘贴。 – mscdex

+0

在控制台日志中使用'result'而不是'query.sql' –

回答

2

这是因为你没有在选择后关闭数据库连接,所以在事件循环中有一些东西。

添加connection.end();console.log(query.sql);console.log(result);显示结果

+0

我试过这样做,但我得到'TypeError:connection.close不是一个函数' – Webeng

+0

我更新了我的答案,对不起错误的方法:) –

+0

谢谢你,工作:) – Webeng

1

请使用result变量在callback以及它给你查询的确切回复。

它应该是这样的

var query = connection.query(<sql query>, function (err, res){ 
    console.log(err); 
    console.log(result); 
}); 
+0

谢谢你的输入Atul,upvoted你的答案 – Webeng