Node.js 如何在表单数据项上设置自定义标题?
我正在从nodeJS路由发送一个多部分数据作为响应。 我使用Node.js 如何在表单数据项上设置自定义标题?,node.js,multipartform-data,form-data,Node.js,Multipartform Data,Form Data,我正在从nodeJS路由发送一个多部分数据作为响应。 我使用表单数据库来完成,我的要求是为所有二进制数据发送额外的头信息 我尝试了以下方法 router.get('/getdata', async (req, res, next) => { var form = new FormData(); var encodedImage2 = fs.readFileSync('./public/image2.png'); var CRLF = '\r\n'; va
表单数据
库来完成,我的要求是为所有二进制数据发送额外的头信息
我尝试了以下方法
router.get('/getdata', async (req, res, next) => {
var form = new FormData();
var encodedImage2 = fs.readFileSync('./public/image2.png');
var CRLF = '\r\n';
var options = {
header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF
};
form.append('image2.png', encodedImage2, options);
res.set('Content-Type', 'multipart/form-data; boundary=' + form.getBoundary());
form.pipe(res);
});
在输出中,我只得到标题
X-Custom-Header: 123
没有选项
我可以得到
Content-Disposition: form-data; name="image2.png"
Content-Type: application/octet-stream
我需要一个类似的输出标题
Content-Disposition: form-data; name="image2.png"
Content-Type: application/octet-stream
X-custom-Header: 123
只需在
express
的res
对象中设置标题,就像在内容类型中一样:
router.get('/getdata', async (req, res, next) => {
var form = new FormData();
form.append('image2.png', fs.readFileSync('./public/image2.png'));
res.set('Content-Type', 'multipart/form-data; boundary=' + form.getBoundary());
res.set('X-Custom-Header', '123'); // Set header here
form.pipe(res);
});
我自己找到了解决办法,而且非常简单。
可以在选项对象标题属性中设置自定义标题
router.get('/getdata', async (req, res, next) => {
var form = new FormData();
var encodedImage2 = fs.readFileSync('./public/image2.png');
var options = {
header: {
'X-Custom-Header': 123
}
};
form.append('image2.png', encodedImage2, options);
res.set('Content-Type', 'multipart/form-data; boundary=' + form.getBoundary());
form.pipe(res);
});
您的解决方案是将标题添加到响应中。我需要将自定义标题添加到单个表单二进制项中。您不能这样做,因为只有一个响应,所以只有一个标题。您的意思是在响应中添加属性吗?你发送多个文件吗?那么你应该添加多个标题并将其映射到文件。这与我下面的回答不一样吗?@Marcoslu在你的回答中,你是在将标题添加到响应中,我需要将标题添加到单个表单项。我们可以在FormData
单个项目中设置标题选项