最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在更改Node.js中的某些字段名称的同时将多部分表单数据请求发送到另一个请求

IT培训 admin 7浏览 0评论

在更改Node.js中的某些字段名称的同时将多部分/表单数据请求发送到另一个请求

我想将多部分/表单数据中的文件上传请求流式传输到另一台服务器,并同时更改某些字段名称。

我不想将文件临时存储在磁盘上,也不想完全将文件存储在内存中。

我曾尝试使用multer,busboy和multiparty。我想我通过使用自定义的Transform流更加接近了,但是它还无法正常工作。

const express = require('express');
const request = require('request');
const { Transform } = require('stream');

const router = express.Router();

class TransformStream extends Transform {
  _transform(chunk, encoding, callback) {
    // here I tried to manipulate the chunk
    this.push(chunk);
    callback();
  }

  _flush(callback) {
    callback();
  }
}

router.post('/', function pipeFile(req, res) {
  const transformStream = new TransformStream();
  req.pipe(transformStream).pipe(request.post(''));
  res.sendStatus(204);
});

我试图操纵_transform中的块而没有成功(EPIPE)。听起来似乎不客气,他们有更好的解决方案吗?

回答如下:

这里是使用replacestreamreplacestream的解决方案。

content-disposition

在更改Node.js中的某些字段名称的同时将多部分/表单数据请求发送到另一个请求

我想将多部分/表单数据中的文件上传请求流式传输到另一台服务器,并同时更改某些字段名称。

我不想将文件临时存储在磁盘上,也不想完全将文件存储在内存中。

我曾尝试使用multer,busboy和multiparty。我想我通过使用自定义的Transform流更加接近了,但是它还无法正常工作。

const express = require('express');
const request = require('request');
const { Transform } = require('stream');

const router = express.Router();

class TransformStream extends Transform {
  _transform(chunk, encoding, callback) {
    // here I tried to manipulate the chunk
    this.push(chunk);
    callback();
  }

  _flush(callback) {
    callback();
  }
}

router.post('/', function pipeFile(req, res) {
  const transformStream = new TransformStream();
  req.pipe(transformStream).pipe(request.post(''));
  res.sendStatus(204);
});

我试图操纵_transform中的块而没有成功(EPIPE)。听起来似乎不客气,他们有更好的解决方案吗?

回答如下:

这里是使用replacestreamreplacestream的解决方案。

content-disposition
发布评论

评论列表 (0)

  1. 暂无评论