Node.js 如何在表单数据项上设置自定义标题?

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

我正在从nodeJS路由发送一个多部分数据作为响应。 我使用
表单数据
库来完成,我的要求是为所有二进制数据发送额外的头信息

我尝试了以下方法

 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
单个项目中设置标题选项