Node.js文件上传操作指南

发表时间: 2018-10-23 08:03

Node.js正在迅速成为更受欢迎的Web开发框架之一。继续阅读以熟悉这个强大的JavaScript技术!

如今,前端开发对后端进程造成了很大的影响,尤其是在JavaScript领域。JS最初是一种针对浏览器的语言,已经成熟为现代工具的每一个角落。与JavaScript中的各种库交互的语法在前端和后端环境之间可能会令人混淆地相同,因此有助于清楚地了解正在发生的事情。我们将在下面简要讨论上下文,然后我将以自己的方式结束您上传带节点的文件。

问题:信息过载

搜索“JavaScript文件上传”将产生大量结果,但乍看之下很难说出哪些实际示例针对您的特定需求。SDK通常不关心它们运行的程度,因此开发人员需要清楚地了解所涉及的细微差别。

上传文件

当我们说“上传”时,我们在谈论什么?“向上”和“向下”的概念分别暗示服务器和客户端存储。我们正在获取源文件并将其从一个存储位置移动到另一个存储位置。当我们在前端构建时,很明显用户的客户端是“向下”位置,并且上传会将用户文件的副本从其客户端“向上”移动到服务器,云或CDN。当我们在服务器上构建时......哪种方式可以了?

了解Filestack的架构

当您使用Filestack的软件即服务(SaaS)时,您将释放出具有强大功能的庞大全球网络。您正在跳过有效上传,转换,交付和智能的功能研究和开发。所有这一切都始于将您的内容(和/或用户的内容)带入该世界。您可以携带自己的存储后端,如亚马逊的S3存储桶,或使用我们的默认存储。您可以直接与我们的REST API交互,或利用我们的SDK之一。您可以使用任何语言,任何体系结构和任何内容策略。

如果您是配置帐户的人,则可以设置不同的后端存储选项和首选项。如果没有,你可以完全忽略幕后发生的事情,只需编写代码。在那种情况下,“上传”就像将内容交给Filestack的系统一样简单。我们可以通过从运行节点的同一台计算机上移动文件来实现,甚至可以使用节点作为传输来从其他地方移动文件。最终的结果是文件进入Filestack世界,在这种情况下我们称之为“上传”(即使发生的事情可能看起来更像是侧载,交叉载荷,或者是下载再次加载 - 这取决于你!)。

解决方案:使用Filestack的JS SDK

不要重新发明轮子!这是使用Filestack的JavaScript SDK将文件从Node项目上传到云的快速解决方案。更重要的是,我们会清楚地说明正在发生的事情,以及如果从前端处理这个问题会有什么不同。

获取SDK

JavaScript过去常常有两个用于获取包和库的主要系统。在前端,我们使用了Bower。Bbower中的软件包适用于前端交付,因此运行一个工具将它们全部引入项目是有意义的。在后端,npm是王道。这些软件包旨在在Node内部运行,通常在完整堆栈JS开发的早期阶段在MEAN堆栈中运行。

现在,项目越来越多地使用复杂的工具链来构建所有东西。我们不是在HTML中包含.js文件来获取前端框架或库,而是使用转发器和其他处理工具来处理我们发送到浏览器的代码。我们不再直接在浏览器中将不同的库连接在一起; 甚至Bower项目本身也建议使用Webpack作为解决旧问题的更现代的解决方案。我们使用类似TypeScript的超语言编写,然后处理所有代码和导入的库,并在最后将其调整为密集,优化,可发送的包。

乍一看,这可能会让人感到困惑,尤其是如果您刚接触JavaScript世界的话。您可以通过多种方式获取Filestack的JavaScript SDK等SDK:

  • 拉取源代码来git clone https://github.com/filestack/filestack-js.git。
  • 将GitHub源作为.zip文件下载并在计算机上解压缩。
  • npm install filestack-js,将npm包拉入您的项目。
  • npm install -g filestack-js,将npm包拉入您的全局系统。
  • yarn install filestack-js,拉同样的npm包(但使用纱线代替npm)。
  • yarn global add filestack-js,将npm包添加到yarn的全局安装中。
  • 将filestack-js包作为依赖项添加到项目根文件夹中的package.json中,然后在该文件夹中运行`npm install`或`yarn install` ...

那只是短名单!让我们分解一下:最终你想要从你的Node代码中获得filestack-js包。而已。进入该软件包的代码来自GitHub,可能会被不同的工具传递,但是,在一天结束时,它只需要在您可以调用其功能的项目中着陆。您不需要在全球范围内安装它,也不需要做任何花哨的事情来获取它。一种方法与另一种方法一样好。

有趣的事实:如前所述,许多项目正在转向使用TypeScript编写,然后将导出的代码转换为JavaScript。Filestack的SDK正是这样做的!源代码是用TypeScript编写的,它本身就是一个npm模块,可以根据需要导入。这一切都在幕后自动无缝地发生,因此您可以专注于您的代码!

一旦安装了filestack-js npm软件包,您就可以在项目目录中看到它。例如,如果我在名为my-test-directory的目录中运行`npm init`,然后在同一目录中运行`npm install filestack-js`,我将能够看到my-test-directory / node_modules / filestack-js /确认它在那里。您还会看到在node_modules目录中安装了大量其他软件包; 没关系!根据您安装的软件包的要求,它们被引入以获得支持。这个目录结构很神奇:Node专门在node_modules位置查找你在代码中调用的模块名称。