在 Node.js 里使用 multiparty 上传文件

简介: 在 Node.js 里使用 multiparty 上传文件

需求

将上传的文件直接保存到 Google Cloud Storage 中。

解决方法:我们需要使用 part stream 订阅标准流事件,例如 data 和 end 以接收文件数据。


示例代码如下:

part.on("data", chunk => {
    writeStream.write(chunk);
});
part.on("end", chunk => {
    writeStream.end(chunk);
});



writeStream - 是要放置数据的另一个流。 在我的例子中,这是通过 signedUrl 发出的 Google Cloud Storage 文件 PUT 请求。 part - 是表单部件事件的部件对象。


流是支持 Node.js 应用程序的基本概念之一。 它们是数据处理方法,用于按顺序读取输入或将输入写入输出。


流是一种以高效方式处理读/写文件、网络通信或任何类型的端到端信息交换的方式。


流的独特之处在于,它不是像传统方式那样由程序一次将文件全部读入内存,而是逐条读取数据块,处理其内容而不将其全部保存在内存中。


这使得流在处理大量数据时非常强大,例如,文件大小可能大于您的可用内存空间,因此无法将整个文件读入内存以进行处理。 这就是流来救援的地方!


使用流处理较小的数据块,可以读取较大的文件。


让我们以 YouTube 或 Netflix 等“流媒体”服务为例:这些服务不会让您同时下载视频和音频。 相反,您的浏览器接收视频作为连续的块流,允许接收者几乎立即开始观看和/或收听。


然而,流不仅仅是处理媒体或大数据。 它们还赋予我们代码“可组合性”的力量。 考虑到可组合性进行设计意味着可以以某种方式组合多个组件以产生相同类型的结果。 在 Node.js 中,可以使用流通过管道将数据传入和传出其他较小的代码片段,从而组合出功能强大的代码片段。



相关文章
|
5月前
webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts
webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts
315 0
|
5月前
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
|
11月前
|
资源调度
Cannot find module ‘\node_modules\ejs\postinstall.js
Cannot find module ‘\node_modules\ejs\postinstall.js
95 0
|
5月前
Module build failed (from ./node_modules/eslint-loader/index.js)
Module build failed (from ./node_modules/eslint-loader/index.js)
168 0
Module build failed (from ./node_modules/eslint-loader/index.js)
|
5月前
|
中间件
node使用multer进行文件上传
node使用multer进行文件上传
|
11月前
|
JavaScript
Node.js Error: Cannot find module express
Node.js Error: Cannot find module express
|
10月前
Webpack打包出错:Error: Cannot find module ‘webpack/lib/node/NodeTemplatePlugin‘ Require stack:
Webpack打包出错:Error: Cannot find module ‘webpack/lib/node/NodeTemplatePlugin‘ Require stack:
|
JavaScript
如何使用 multiparty 工具库在 Node.js 应用里解析 multipart form-data 格式的请求
如何使用 multiparty 工具库在 Node.js 应用里解析 multipart form-data 格式的请求
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
1085 0
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
|
11月前
|
资源调度 JavaScript Linux
Cannot find module ‘xxx\node_modules\yorkie\bin\install.js‘
Cannot find module ‘xxx\node_modules\yorkie\bin\install.js‘
99 0