Ade*_*nut 23 javascript forms multipartform-data form-data node.js
我想在没有浏览器的 nodejs 中发出 post 请求,因为它是后端代码。
const formdata = new FormData()
formdata.append('chartfile', file);
Run Code Online (Sandbox Code Playgroud)
但是上面的代码给了我错误为FormData not defined. 我正在使用 ES6。
任何人,谁能让我知道如何在 nodejs 中使用 FormData?
sud*_*oul 63
如果您只需要提交string值而不是Buffer或ReadStream,那么URLSearchParams可以为您工作!
原始示例
var fs = require('fs');
var form = new URLSearchParams();
form.append('my_field', 'my value');
form.append('my_second_field', 'my value 2');
form.append('my_third_field', 'my value 3');
Run Code Online (Sandbox Code Playgroud)
轴示例
const formData = new URLSearchParams();
formData.append('field1', 'value1');
formData.append('field2', 'value2');
const response = await axios.request({
url: 'https://example.com',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: formData
});
Run Code Online (Sandbox Code Playgroud)
Rad*_*ard 30
您应该使用form-data - npm 模块。因为formData()不是 NodeJS API
用这种方式,
var FormData = require('form-data');
var fs = require('fs');
var form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
Run Code Online (Sandbox Code Playgroud)
Bra*_*zic 29
FormData现在是 Node 18 的一部分。他们删除了在 Node 17 中引入的实验性警告:https://github.com/nodejs/node/commit/d33cbabd79
现在您可以在没有任何依赖的情况下使用它fetch。
在我看来,不需要额外依赖项的最干净的解决方案是:
const formData = new URLSearchParams({
param1: 'this',
param2: 'is',
param3: 'neat',
})
Run Code Online (Sandbox Code Playgroud)
我建议使用 npm 模块formdata-node,因为它是 Node.js 的完整(符合规范)FormData实现。它支持 ESM/CJS 目标,因此支持 EM6。您可以在npm 模块页面找到一些示例。
| 归档时间: |
|
| 查看次数: |
29380 次 |
| 最近记录: |