Javascript Nodejs应用程序无法使用主体解析器中间件发布/发送用户
这是我的app.js文件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(
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())