javascript - node.js出現(xiàn) mysql 查詢異常,怎么處理?
問題描述
基于express的框架,node-mysql模塊開發(fā)項目,在項目中需要執(zhí)行sql語句,如果sql語句異常,那么程序會直接崩潰。
conn.query(sql,function (err, result) {}如果這里的事情了因為前端提交方式的原因(或者是別人的非法提交),sql語句變?yōu)榱薙ELECT * FROM prod WHERE prodName LIKE’%undefined%’ LIMIT NaN,10; 這樣的話,node控制臺會拋出:throw err; // Rethrow non-MySQL errorsnode就崩潰了,請問有什么好的方式處理sql異常?
問題解答
回答1:把你的sql處理下,將不合法的值設(shè)為默認(rèn)值
回答2:啟動文件最后加上這個處理試試看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);});
相關(guān)文章:
1. javascript - nodejs處理post請求回的gbk亂碼怎么處理?2. mysql在進(jìn)行insert select的時候,有的字段跟關(guān)鍵字重復(fù)怎么處理?3. redis keys 和 expires 近乎相同,怎么處理?4. html5 - 剛接觸移動端開發(fā),請教下移動端使用vh,vw單位做布局,點擊輸入框后鍵盤彈出會擠壓內(nèi)容怎么處理?5. mysql - python開發(fā)web service 中數(shù)據(jù)庫鏈接和釋放應(yīng)該怎么處理?6. node.js - nodejs中mysql子查詢返回多行結(jié)果怎么處理?7. mysql - 給千萬數(shù)據(jù)的表增加索引,不影響使用,怎么處理?8. Java 導(dǎo)入兩個具有相同名稱的類。怎么處理?9. python - 使用eclipse運行django代碼,修改了views.py這個文件,但是瀏覽器顯示的還是原有沒修改的結(jié)果,怎么處理?10. javascript - 火狐不支持input date怎么處理?
