Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs应用程序无法使用主体解析器中间件发布/发送用户_Javascript_Json_Node.js_Body Parser - Fatal编程技术网

Javascript Nodejs应用程序无法使用主体解析器中间件发布/发送用户

Javascript Nodejs应用程序无法使用主体解析器中间件发布/发送用户,javascript,json,node.js,body-parser,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(

这是我的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正文时,它说“不能发布/用户”,带有404未找到的HTTP状态代码,终端日志中没有任何内容

注意:我正在使用postman发送api请求

如果有人能帮我,那就太好了

谢谢


Joy

我看不到您在使用
jsonParser

您应该在向其发送任何json之前使用它

app.use(jsonParser);

像这样使用app.use(bodyParser.json())而不是var jsonParser=bodyParser.json();我想检查我的注册中间件和trow自定义响应中是否存在无效的json,当我在这里使用
app.use(bodyParser.json())
app.post('/users',jsonParser,require('./routes/register.js'))时,该响应不起作用如文档所示。另外,我想检查我的注册中间件和trow自定义响应中是否存在无效的json,这在我执行
app时不起作用。use(bodyParser.json())
like{“hello”:h23}是无效的json,它会导致我的代码中出现语法错误,而不是自定义错误。我使用json错误库解决了这个问题,但看起来主体解析器模块没有调用下一个方法。不过我不确定。这是我的新代码<代码>var express=require('express')、bodyParser=require('body-parser')、oauthServer=require('oauth2-server')、oauth_model=require('./app_modules/oauth_model')、jsonError=require('express-body-parser-json-error')('dotenv')。config()const app=express()//路由。var register=require('./routes/register.js')app.use(bodyParser.json())app.use(jsonError())