javascript - node.js出現 mysql 查詢異常,怎么處理?
問題描述
基于express的框架,node-mysql模塊開發項目,在項目中需要執行sql語句,如果sql語句異常,那么程序會直接崩潰。
conn.query(sql,function (err, result) {}如果這里的事情了因為前端提交方式的原因(或者是別人的非法提交),sql語句變為了SELECT * FROM prod WHERE prodName LIKE’%undefined%’ LIMIT NaN,10; 這樣的話,node控制臺會拋出:throw err; // Rethrow non-MySQL errorsnode就崩潰了,請問有什么好的方式處理sql異常?
問題解答
回答1:把你的sql處理下,將不合法的值設為默認值
回答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);});
相關文章:
1. python - 使用eclipse運行django代碼,修改了views.py這個文件,但是瀏覽器顯示的還是原有沒修改的結果,怎么處理?2. javascript - 兩個點擊事件,大的DIV包含小的DIV,點擊小的DIV,大的也會觸發,怎么處理?3. mysql - 給千萬數據的表增加索引,不影響使用,怎么處理?4. node.js - nodejs中mysql子查詢返回多行結果怎么處理?5. 網頁爬蟲 - python爬蟲,需要爬取的數據沒在網頁源代碼中,怎么處理?6. javascript - nodejs處理post請求回的gbk亂碼怎么處理?7. javascript - 火狐不支持input date怎么處理?8. html5 - 剛接觸移動端開發,請教下移動端使用vh,vw單位做布局,點擊輸入框后鍵盤彈出會擠壓內容怎么處理?9. redis keys 和 expires 近乎相同,怎么處理?10. mysql - python開發web service 中數據庫鏈接和釋放應該怎么處理?
