Podczas tworzenia żądania POST z poprawnym JSON, bodyCarser prawidłowo analizuje treść żądania POST. Jednakże, jeśli mogę przesłać nieprawidłowy ciąg JSON jako ciała, otrzymuję błąd:Złapanie nielegalnych danych JSON POST w Expressie?
SyntaxError: Unexpected token ILLEGAL
at parse (native)
at IncomingMessage.<anonymous>(/home/.../middleware/bodyParser.js:69:15)
...
Więc wydaje się, że parser ciało zawodzi podczas parsowania ciała. Chciałbym jednak uchwycić to niepowodzenie i zwrócić błąd. Nie jestem pewien, co mogę zrobić, aby go złapać, więc każda pomoc będzie doceniona. Dzięki.
Hej Peter, dzięki za odpowiedź. Niestety, próbowałem tego bezskutecznie. Wygląda na to, że app.error nigdy nie jest wykonywany. Próbowałem: 'app.error (function (err, req, res, next) {console.log (" ERR ");});', ale nie jest wykonywane. Dla mojego app.configure do programowania, mam to ustawione jako 'app.use (express.errorHandler ({dumpExceptions: true, showStack: true}));'. Używam węzła 0.4.9, łączę 1.7.1 i wyrażam 2.4.6. Jakieś pomysły? Dzięki jeszcze raz. – naivedeveloper
Spróbuj skomentować komunikat express errorandandera i po prostu wywołaj wywołanie app.error po skonfigurowaniu tras aplikacji. Ale poza tym nie jestem pewien, dlaczego 'app.error' nie zostanie wywołany. –
Z jakiegoś powodu przy korzystaniu z funkcji express/connect JSON.parse nie generuje wyjątków, dlatego obsługa błędów nie uruchamia się. Zbadam sposób obejścia tego. – timoxley