Nodejs应用程序抛出不能POST /用户身份解析器中间件

时间:2017-06-09 14:39:54

标签: javascript json node.js body-parser

这是我的app.js文件。

    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!')
})

当我向localhost:3000/users发送一个带有POST请求的无效json正文时,请求转到register.js,验证码在那里工作。

但奇怪的是,当我发送有效的JSON正文时,它会显示“无法POST /用户”,其中包含404 Not Found HTTP状态代码,并且终端日志中没有任何内容。

注意:我正在使用邮递员发送api请求。

如果有人可以帮助我,那真的很棒。

谢谢,

1 个答案:

答案 0 :(得分:1)

我没有看到您使用jsonParser

你应该在发送任何json之前使用它

app.use(jsonParser);