使用 axios 和 express 处理 POST 请求
Posted
技术标签:
【中文标题】使用 axios 和 express 处理 POST 请求【英文标题】:Handling POST request with axios and express 【发布时间】:2016-09-29 18:47:55 【问题描述】:我似乎无法弄清楚为什么当我使用 axios.post 方法提供数据主体时,它在我的服务器上被捕获为未定义。
我有以下带有sn-ps代码的文件:
app.js:
auth(user, pass)
return axios.post('http://localhost:3000/auth',
username: user,
password: pass
)
server.js:
app.post('/auth', (req, res) =>
console.log(req.body) //undefined
res.end("Success")
)
我如何使用 axios 正确处理 POST 数据?我错过了什么吗?
成功返回正常,但用户名/密码似乎在请求中的任何地方都找不到
【问题讨论】:
您是否在任何请求处理程序处理 xhr 请求之前使用 express 中的中间件?喜欢:app.use('/*', function(req,res,next) res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Credentials", "true"); res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); res.header("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"); next(); );
啊,是的,它似乎使用了 webpack-dev-middleware 和 webpack-hot-middleware。虽然我不相信这些会影响 POST 处理。我可能需要进一步挖掘,因为我使用的是boilerplate
其实它好像也在使用bodyParser来处理POST请求。
原来我所有的中间件都安装错了;在使用任何中间件之前,我试图在我的 server.js 文件中处理 POST。感谢您的中间件提示!你就是炸弹!
【参考方案1】:
我没有足够的声誉来评论 Jim 的上一篇帖子,但我遇到了同样的问题,并且解决了它!
澄清一下:在我的 server.js 文件中,我在这些之前需要我的路由:
这些首先:
app.use(express.urlencoded( extended: true ));
app.use(express.json());
然后这个:
app.use(routes);
【讨论】:
【参考方案2】:添加以下解析器来处理请求的数据
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded( extended: true ));
app.use(bodyParser.json())
【讨论】:
为我解决了类似的问题【参考方案3】:原来我所有的中间件都安装错了;在使用任何中间件之前,我试图在 server.js 文件中处理 POST。
【讨论】:
我也有类似的问题,但不明白你是怎么解决的。 抱歉回复晚了。对于我的情况,我必须确保 express 在设置任何路由之前处理所有中间件。因此,请确保在运行任何 GET 或 POST 路由之前运行所有 app.use([middleware]) 配置以上是关于使用 axios 和 express 处理 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章
Express - 使用 axios 返回具有命名路由参数的某些文档
发送带有 axios 和强大的图像( nodejs -> express )
使用 express 和 axios 反应应用程序在呈现数据时出错
ReactJS 和 Express 与 Axios 返回 404