有很多关于如何使用多部分表单数据处理请求的帖子。但是我的用例是我有一个客户端,它期望来自服务器的多部分表单数据响应,我需要编写一个简单的 nodejs 服务器来测试我的客户端。
要编写简单的服务器,我有以下内容:
var express = require('express');
var bodyParser = require('body-parser');
var FormData = require('form-data');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.get('/describe', function(req, res) {
var form = new FormData();
form.append('part1', 'part 1 data');
form.append('part2', 'part 2 data');
res.setHeader('Content-Type', 'multipart/form-data');
res.send(form);
});
app.listen(3030, "0.0.0.0");
console.log('Listening on port 3030...');
Run Code Online (Sandbox Code Playgroud)
现在,当我的客户端请求 localhost:3030/describe 时,响应头显示以下不带边界值的内容
Content-Type: multipart/form-data; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
并且内容作为文件而不是在响应正文中下载。
{"_overheadLength":208,"_valueLength":22,"_valuesToMeasure":[],"writable":false,"readable":true,"dataSize":0,"maxDataSize":2097152,"pauseStreams":true,"_released":false,"_streams":["----------------------------315683163006570790405079\r\nContent-Disposition: form-data; name=\"part1\"\r\n\r\n","part 1 data",null,"----------------------------315683163006570790405079\r\nContent-Disposition: form-data; name=\"part2\"\r\n\r\n","part 2 data",null],"_currentStream":null,"_boundary":"--------------------------315683163006570790405079"}
Run Code Online (Sandbox Code Playgroud)
所以我的问题: 1. 我们如何让边界出现在响应头中?2.我们如何让表单数据响应内容显示在响应正文中而不是作为下载文件?