node.js - 使用axios发送api时如何使req.files和req.body在nodejs中可用
问题描述
我在我的 Node.js 应用程序中使用 Axios npm 包,它是一个内置的微服务架构。API-gateway 正在使用 Axios 调用其他服务。
根据 axios 文档,对于 POST 方法,请求格式为: axios#post(url[, data[, config]]) 。仅表示一个参数数据。
谁能告诉我如何将 req.body 和 req.files 数据分别发送到 Axios?
解决方案
根据Axios 社区对熟悉问题的回答,这可以通过 npm 包form-data来实现,它在节点端模拟 WebAPI FormData。
这将允许您将文件和表单字段发送到 API 并以多部分表单数据的形式接收它。
const axios = require('axios');
const FormData = require('form-data');
const form = new FormData();
// Second argument can take Buffer or Stream (lazily read during the request) too.
// Third argument is filename if you want to simulate a file upload. Otherwise omit.
form.append('field', 'a,b,c', 'blah.csv');
axios.post('http://example.org/endpoint', form, {
headers: form.getHeaders(),
})
.then(result => {
// Handle result…
console.log(result.data);
});
推荐阅读
- java - 在 Java 中向 airtable 发布请求
- pyspark - 在单个 spark 数据框中减去两个字符串列的最佳 PySpark 实践是什么?
- javascript - 在 nextjs Image 中获取文件读取器结果
- javascript - 如果文件是 jpg,则唯一地更改样式
- android - react native error:——AAPT: error: resource android:attr/lStar not found
- python - 类局部变量没有pylint警告“重新定义内置”
- ruby-on-rails - Docker-compose 与 redis、sidekiq、rails SocketError
- django - 如何在 django 中使用带有可选参数的反向?
- javascript - 除非我专门使用 getElementById,否则为什么 classList 会抛出“未定义”?
- r - 如何在字符串中转换数据框以修复错误以正确绘制某些图形?