【问题标题】:Issue with mysql node jsmysql节点js的问题
【发布时间】:2017-07-07 16:50:54
【问题描述】:

我最近在我的 Ubuntu 16.04 上安装了 MySQL。而且我已经成功地能够在命令提示符中使用命令来创建表,并执行诸如

之类的命令
select * from articles

但是,当我从 node.js.js 文件运行代码时,就会出现问题。命令行只是在之后冻结。下图中,右边的终端是用node调用select.js文件的终端,左边是手动调用select * from articles的终端:

有趣的是,当我使用insert.js 文件时,同样的事情发生在右侧的终端中但是插入了行(我可以使用左侧的终端手动验证) .

问题: 为什么右边的终端执行不完,select * from articles的情况下不显示articles表里面的内容?

【问题讨论】:

  • 您能否将快照中的代码复制粘贴到小提琴或 SO 本身?
  • 请不要包含文字图片。相反,将相关文本复制到问题中。这增加了可搜索性,防止图像在某些时候消失,并且允许其他人帮助解决您的问题,因为他们可以在需要时复制和粘贴。
  • 在控制台日志中使用 result 而不是 query.sql
  • 哦,所以我使用了result,它确实输出了结果对象。 root@goku-cp:home/goku/Desktop# 不是自动重复问题的事实吗?如果不是,我怎样才能让它自动回来
  • 尝试关闭你的数据库连接

标签: javascript mysql node.js command-line


【解决方案1】:

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

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

【讨论】:

  • 我试过这样做,但我得到了TypeError: connection.close is not a function
【解决方案2】:

请同时使用callback 中的result 变量,它可以为您提供准确的查询响应。

应该是这样的

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多