當使用有效的JSON創建POST請求時,bodyParser會正確解析POST請求的正文。不過,如果我提交了無效的JSON字符串作爲身體,我收到錯誤:在Express中捕獲非法JSON POST數據?
SyntaxError: Unexpected token ILLEGAL
at parse (native)
at IncomingMessage.<anonymous>(/home/.../middleware/bodyParser.js:69:15)
...
所以,看來身體解析器身體的解析過程中失敗。但是,我想趕上這個失敗並返回一個錯誤。我不確定我能做些什麼來抓住它,所以任何幫助,將不勝感激。謝謝。
嘿,彼得,謝謝你的回覆。不幸的是,我已經嘗試過,但無濟於事。看起來好像app.error永遠不會被執行。我試過了:'app.error(function(err,req,res,next){console.log(「ERR」);});',但它沒有被執行。對於我的app.configure開發,我把它設置爲'app.use(express.errorHandler({dumpExceptions:true,showStack:true}));'。我正在運行節點0.4.9,連接1.7.1,並表達2.4.6。有任何想法嗎?再次感謝。 – naivedeveloper
嘗試爲現在註釋掉express errorHandler,並在app.use路由配置完成後放置app.error調用。但除此之外,我不確定爲什麼'app.error'不會被調用。 –
由於某些原因,使用express/connect時,JSON.parse不會拋出異常,這就是爲什麼您的錯誤處理程序不會觸發。我正在調查解決方法。 – timoxley