2016-10-19 4 views
0

jsonのボディタイプを受け入れ、body-parserを使用して表現するアプリケーションを作成しています。私が無効なjson本体を送信すると、私のプログラムはユーザとコンソールに愚かなエラーを返すでしょう。どのようにしてこのコンソールエラーを防ぎ、不適切なJSON本体でリクエストを拒否しますか?ExpressまたはBody-Parserを使用して無効なJSON本体を拒否する方法

ありがとうございます。 エイヴリー。

PS。ここに私が何をしているかを示すためのコード例があります:

var bodyParser = require('body-parser'); 
var express = require('express'); 
var app = express(); 

app.use(bodyParser.json()); 

app.post('/test', function(req, res){ 
    res.status(200).send("Hi"); 
}); 

app.listen(8081, function(){ 
    console.log("Server is running"); 
}); 

答えて

1

エラー処理ミドルウェアをアプリケーションに添付する必要があります。そのエラーをどのように扱うかは、あなた次第ですが、あなたのやり方の例として:

var bodyParser = require('body-parser'); 
var express = require('express'); 
var app = express(); 

app.use(bodyParser.json()); 

// this is a trivial implementation 
app.use((err, req, res, next) => { 
    // you can error out to stderr still, or not; your choice 
    console.error(err); 

    // body-parser will set this to 400 if the json is in error 
    if(err.status === 400) 
    return res.status(err.status).send('Dude, you messed up the JSON'); 

    return next(err); // if it's not a 400, let the default error handling do it. 
}); 

app.post('/test', function(req, res){ 
    res.status(200).send("Hi"); 
}); 

app.listen(8081, function(){ 
    console.log("Server is running"); 
}); 
+0

ありがとうございました!これは完全に機能します。 – Avery246813579

関連する問題