0

我正在使用https://github.com/felixge/node-mysql 并且每次 mysql 查询都会引发错误,例如如果一行不存在。节点服务器崩溃。

connection.connect();

connection.query('SELECT * from table1 where id = 2',  function(err, rows, fields) {
  if (err) console.log(err);
  if (rows[0]) { 
    console.log('The result is  ', rows[0].user);
  }
});
connection.end();

我如何简单地将错误打印到页面而不是使服务器崩溃。

4

2 回答 2

1

如果发生错误,您的代码就是它,但无论如何console.log都会尝试访问。rows[0]如果错误rows未定义,rows[0]则会触发新错误。

else结合长度检查 轻松修复:

if (err) {
  console.log(err);
} else if (rows.length) { 
  console.log('The result is  ', rows[0].user);
} else {
  console.log("Query didn't return any results.");
}
于 2013-05-26T19:40:07.940 回答
0

我更喜欢使用以下return语句:

connection.connect();

connection.query('SELECT * from table1 where id = 2',  function(err, rows, fields) {
  if (err) return console.log(err);

  if (rows[0]) { 
    console.log('The result is  ', rows[0].user);
  }
});
connection.end();

这是更清洁的 IMO,并保证我不会在不应该的 if 语句块中留下任何内容。

于 2013-08-01T07:34:59.430 回答