2013-07-26 25 views
1

我正在express.js中創建一個API,其中由用戶發佈JSON。如何在express.js中發現JSON文章中的錯誤

我已經在客戶端請求中將內容類型設置爲application/json。如果我發佈有效的JSON,一切都很好。然而,posintg快遞拋出下面的錯誤畸形的JSON結果...

string(370) "SyntaxError: Unexpected token } at Object.parse (native) at IncomingMessage. (/var/www/vhost/rest-v1/node/node_modules/express/node_modules/connect/lib/middleware/json.js:76:27) at IncomingMessage.EventEmitter.emit (events.js:92:17) at _stream_readable.js:910:16 at process._tickCallback (node.js:415:13)"

我如何能趕上這個錯誤,這樣我可以用一個更有意義的錯誤信息給用戶應對?

回答

1

用戶快速的內置錯誤處理中間件或用自己的覆蓋它:http://expressjs.com/guide.html#error-handling

+0

感謝您的。我從那以後發現了這一點,但我想爲每條路線處理不同的錯誤。我還想知道我是否需要提出另一個問題。有沒有辦法禁用自動JSON解析,以便我貓在路由功能內執行它? –

+0

解析JSON的Express中間件通過bodyParser http://expressjs.com/api.html#middleware調用。移除該中間件,您可以在路由中自行解析它。不過,我會建議堅持自動解析並只返回一個400錯誤請求HTTP響應。試圖對畸形的JSON進行智能處理既是無限複雜又是潛在的安全漏洞。 – dankohn

相關問題