使用axios和Express处理POST请求

Jim*_*Jim 5 javascript express axios

我似乎无法弄清楚为什么在执行提供数据主体的axios.post方法时,会在服务器上将其捕获为未定义。

我有以下带有代码片段的文件:

app.js:

auth(user, pass){
    return axios.post('http://localhost:3000/auth', {
        username: user, 
        password: pass
    })
}
Run Code Online (Sandbox Code Playgroud)

server.js:

app.post('/auth', (req, res) => {
    console.log(req.body) //undefined
    res.end("Success")  
})
Run Code Online (Sandbox Code Playgroud)

我该如何使用axios正确处理POST数据?我想念什么吗?

成功返回成功,但是在请求中的任何地方似乎都找不到用户名/密码

小智 8

我没有足够的声誉来评论吉姆的最新帖子,但是我有同样的问题,那就解决了!

需要说明的是:在我的server.js文件中,在这些之前,我需要我的路线:

这些第一:

app.use(express.urlencoded({ extended: true }));
app.use(express.json());
Run Code Online (Sandbox Code Playgroud)

然后这个:

app.use(routes);
Run Code Online (Sandbox Code Playgroud)


Wei*_*Lin 5

添加以下解析器来处理请求的数据

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())
Run Code Online (Sandbox Code Playgroud)


Jim*_*Jim 4

结果我所有的中间件都安装得乱七八糟;我试图在使用任何中间件之前处理 server.js 文件中的 POST。

  • 回复晚了非常抱歉。对于我的情况,我必须确保 Express 在设置任何路线之前处理所有中间件。因此,请确保在运行任何 GET 或 POST 路由之前设置所有 app.use([middleware]) 配置 (3认同)
  • 我遇到了类似的问题,但不明白你是如何解决的。 (2认同)