2017-06-09 1 views
2

ここに私のapp.jsファイルがあります。私はlocalhost:3000/usersにPOSTリクエストで無効なJSON本体を送信するとNodejsアプリはPOST /ボディーパーサーミドルウェアのユーザーにはできません

var express = require('express'), 
    bodyParser = require('body-parser'), 
    oauthServer = require('oauth2-server'), 
    oauth_model = require('./app_modules/oauth_model') 


const app = express() 

app.use(bodyParser.urlencoded({ extended: true })); 

var jsonParser = bodyParser.json(); 

app.oauth = oauthServer({ 
    model: oauth_model, // See below for specification 
    grants: ['password', 'refresh_token'], 
    debug: process.env.OAUTH_DEBUG, 
    accessTokenLifetime: 172800, 
    refreshTokenLifetime: 172800, 
    authCodeLifetime: 120, 


}); 


// Oauth endpoint. 

app.all('/oauth/token', app.oauth.grant()); 


// User registration endpoint. 

app.post('/users', jsonParser, require('./routes/register.js')); 


// Get user details. 

app.get('/users', app.oauth.authorise(), require('./routes/users.js')); 


app.post('/', app.oauth.authorise(), require('./routes/test.js')); 

app.use(app.oauth.errorHandler()); 



app.listen(3000, function() { 
    console.log('Mixtra app listening on port 3000!') 
}) 

は、要求がregister.jsに行くと検証コードが動作します。

奇妙なことに、私は有効なJSON本体を送信すると、404 Not FoundのHTTPステータスコードで "POST/usersできません"と表示され、端末ログには何も表示されません。

注:私はpostmanを使用してapiリクエストを送信しています。

誰かが私にこれを手伝ってもらえるのは本当に素晴らしいことです。このapp.useよう

おかげで、

喜び

+1

使用var jsonParser = bodyParser.json();の代わりに(bodyParser.json())を使用します。 –

+0

私の登録ミドルウェアで無効なjsonをチェックし、カスタム応答を返すといいです。これは 'app.use(bodyParser.json())'を実行しても機能しません。 – Joy

答えて

1

が、私はそれに任意のJSONを送信する前にあなたはそれを使用する必要がありますjsonParser

を使用して、あなたが表示されていない

app.use(jsonParser); 
+0

私はここで使用しています: 'app.post ( '/ users'、jsonParser、require( './ routes/register.js')); 'を参照してください。 – Joy

+0

また、登録ミドルウェアで無効なjsonをチェックして、カスタム応答を返すことを望んでいますが、{applet(bodyParser.json())}を実行しても機能しません。 {"hello":h23}無効なjsonは、私のコードで、カスタマイズされたエラーの代わりにSyntaxErrorを引き起こします。 – Joy

+0

@ Joyコードを表示できますか? –

関連する問題