如何在没有浏览器的情况下在 node.js 中使用 FormData?
How to use FormData in node.js without Browser?
我想在没有浏览器的情况下在 nodejs 中发出 post 请求,因为它是后端代码。
const formdata = new FormData()
formdata.append('chartfile', file);
但是上面的代码给我的错误是FormData not defined
。
我正在使用 ES6。
谁能告诉我如何在nodejs中使用FormData?
您可以使用 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'));
FormData
是 JS web API 的一部分(不包含在本机 NodeJS 中)。您可以安装 form-data
软件包。
我建议使用 npm 模块 formdata-node because it's a complete (spec-compliant) FormData implementation for Node.js. It supports both ESM/CJS targets, so EM6 is supported. You can find a few examples at the npm module page。
不需要 npm 模块,URLSearchParams
做同样的事情!
原始示例
var fs = require('fs');
var form = new URLSearchParams();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
Axios 示例
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
});
在我看来,不需要额外依赖项的最干净的解决方案是:
const formData = new URLSearchParams({
param1: 'this',
param2: 'is',
param3: 'neat',
})
我想在没有浏览器的情况下在 nodejs 中发出 post 请求,因为它是后端代码。
const formdata = new FormData()
formdata.append('chartfile', file);
但是上面的代码给我的错误是FormData not defined
。
我正在使用 ES6。
谁能告诉我如何在nodejs中使用FormData?
您可以使用 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'));
FormData
是 JS web API 的一部分(不包含在本机 NodeJS 中)。您可以安装 form-data
软件包。
我建议使用 npm 模块 formdata-node because it's a complete (spec-compliant) FormData implementation for Node.js. It supports both ESM/CJS targets, so EM6 is supported. You can find a few examples at the npm module page。
不需要 npm 模块,URLSearchParams
做同样的事情!
原始示例
var fs = require('fs');
var form = new URLSearchParams();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
Axios 示例
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
});
在我看来,不需要额外依赖项的最干净的解决方案是:
const formData = new URLSearchParams({
param1: 'this',
param2: 'is',
param3: 'neat',
})