Khi tạo yêu cầu POST với JSON hợp lệ, bodyParser phân tích cú pháp nội dung của yêu cầu POST một cách chính xác. Tuy nhiên, nếu tôi gửi một chuỗi JSON không hợp lệ làm nội dung, tôi nhận được lỗi:Bắt dữ liệu JSON không hợp lệ trong Express?
SyntaxError: Unexpected token ILLEGAL
at parse (native)
at IncomingMessage.<anonymous>(/home/.../middleware/bodyParser.js:69:15)
...
Vì vậy, có vẻ như trình phân tích cú pháp nội dung bị lỗi trong quá trình phân tích cú pháp nội dung. Tuy nhiên, tôi muốn bắt lỗi này và trả lại lỗi. Tôi không chắc chắn những gì tôi có thể làm để bắt nó, vì vậy bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn.
Hey Peter, cảm ơn vì đã trả lời. Thật không may, tôi đã cố gắng mà không có avail. Có vẻ như app.error chưa bao giờ được thực hiện. Tôi đã thử: 'app.error (function (err, req, res, next) {console.log (" ERR ");});', nhưng nó không được thực hiện. Đối với app.configure của tôi để phát triển, tôi đã thiết lập nó là 'app.use (express.errorHandler ({dumpExceptions: true, showStack: true}));'. Tôi đang chạy nút 0.4.9, kết nối 1.7.1 và thể hiện 2.4.6. Ý tưởng nào? Cảm ơn một lần nữa. – naivedeveloper
Hãy thử nhận xét về lỗi hiện tạiHandler ngay bây giờ và chỉ cần thực hiện cuộc gọi app.error sau khi các tuyến ứng dụng của bạn được định cấu hình. Nhưng khác hơn là tôi không chắc chắn tại sao 'app.error' sẽ không được gọi. –
Vì một số lý do, khi sử dụng express/connect, JSON.parse không ném ngoại lệ, đó là lý do tại sao trình xử lý lỗi của bạn không kích hoạt. Tôi đang điều tra một cách xung quanh điều này. – timoxley