调试静默JS函数失败
我写了一个Node连接函数,它成功连接,将数据插入数据库,但后来无法执行我的代码处理任何进一步的错误。
在这种情况下我该如何调试?
这是我的相关脚本:
var connection = createConnection();
connection.connect(function (err) {
if (err) return callback(new Error('Failed to connect'), null);
console.log('[Post]Connection with the officeball MySQL database opened...');
connection.query(
'INSERT INTO `officeball`.`sales_entries` SET category = ?, `group` = ?, date = ?, price = ?, customer = ?, seller = ?, commission = ?',
salesData),
function (err, rows, fields) {
if (err) console.log(err);
connection.destroy();
console.log('[Post]...Connection with the officeball MySQL database closed.');
}
});
这是我的控制台输出:
Application initializing...
Application successfully initialized!
Server running at http://127.0.0.1:8080/
User username1 is attempting to validate for a hit...
Connection with the Officeball MySQL database openned...
...Connection with the Officeball MySQL database closed.
User username1 validated and is ready!
[Post] Connection with the officeball MySQL database opened...
注意:您会注意到日志中有两个连接,第一个连接成功打开和关闭。这是验证。第二个连接未关闭,是由上述脚本启动的连接。
由于日志清楚地显示没有致命错误,您可以假设此处的所有内容都已正确定义。这是我直到现在还没有遇到的问题。通常,如果函数失败,程序结束会导致非常特定的错误。
答案 0 :(得分:0)
正如Aaron所说,在“salesData”之后删除“)”并在“}”之后添加8行。如果您要将RDB与节点一起使用,请选中https://github.com/luciotato/waitfor或https://github.com/luciotato/LiteScript
var connection = createConnection();
connection.connect(function (err) {
if (err) return callback(new Error('Failed to connect'), null);
console.log('[Post]Connection with the officeball MySQL database opened...');
connection.query(
'INSERT INTO `officeball`.`sales_entries` SET category = ?, `group` = ?, date = ?, price = ?, customer = ?, seller = ?, commission = ?',
salesData, function (err, rows, fields) {
if (err) console.log(err);
connection.destroy();
console.log('[Post]...Connection with the officeball MySQL database closed.');
});
});
另请阅读亚伦第二评论:
我强烈建议安装并运行jshint。对于你在这里发布的片段,它抱怨:“第17行,第5栏,预期作业或函数调用,而是看到一个表达式。”这是永远不会在任何地方传递的匿名函数。 - 亚伦杜福尔