3

按照例子

https://github.com/visionmedia/express/blob/master/examples/multipart/app.js

Express.js 似乎在幕后完成了所有工作,并保存文件并将其完整地提供给您。如何拦截和操纵原始流?具体来说,我想获取流,以便可以将其连接到写入流。

4

2 回答 2

3

你不能,除非你制作一个使用强大的中间件并在那里拦截流(一种解决方案是用自定义的改变 Express 使用的 bodyParser)。

在以下文件中自行检查:https ://github.com/senchalabs/connect/blob/master/lib/middleware/multipart.js

请注意,没有可以挂钩的“全局”事件。

于 2012-05-24T11:10:21.587 回答
0

你可以使用这个:

app.use(express.multipart({ defer: true }));

然后,在路线中:

app.post('/upload', function (request, response, next) {
  request.form.onPart = function (part) {
    // Default handling for non-files
    if (!part.filename) return form.handlePart(part);

    // part is a stream of the file
  };

  request.form.parse(request, function (error) {
    if (error) return next(error);
  });
});
于 2013-08-14T15:34:42.840 回答