我(作为客户端)我试图发布一个restify图像,服务器只需要保存它。
req.pipe(fs.createWriteStream('test.jpg'));
无效。创建一个空文件但仅此而已。当我将req.body
复制到缓冲区然后fs.writeFile(...)
时,它会起作用。我也尝试了req.body.pipe
,但这会引发错误。
答案 0 :(得分:1)
您可能正在使用已经从请求中读取所有数据的正文解析器中间件,因此没有任何内容可供阅读。如果要直接从请求对象中读取,请尝试调整路由处理程序和/或正文解析中间件的位置。
但是,只有在请求仅包含 图像数据时才会有效。通常情况下,如果请求包含至少一个文件,请将其格式化为multipart/form-data
,这样您就不能只管理请求并仅预期图像数据。
答案 1 :(得分:0)
因此,中间件链中的其他内容(可能是restify.bodyParser()
)已经将请求正文流式传输到缓冲区或字符串req.body
,并且您无法将内容流式传输两次。如果您想直接处理流式传输到文件系统,请找到中间件并为此路由禁用它。