基于express的框架,node-mysql模塊開發(fā)項目,在項目中需要執(zhí)行sql語句,如果sql語句異常,那么程序會直接崩潰。
conn.query(sql,function (err, result) {}
如果這里的事情了因為前端提交方式的原因(或者是別人的非法提交),sql語句變?yōu)榱?SELECT * FROM prod WHERE prodName LIKE'%undefined%' LIMIT NaN,10;
這樣的話,node控制臺會拋出:throw err; // Rethrow non-MySQL errors
node就崩潰了,請問有什么好的方式處理sql異常?
啟動文件最后加上這個處理試試看
app.js
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
那你需要查看一下mysql connector的api一般肯定有異常處理機制。
我用的mongoose。在聲明連接的時候加上異常處理。
mongoose.connection.on('error', function (err) {
console.error('Mongoose connection error: ' + err);
});