Node.js 可以用来做什么?

Node.js 借助 JavaScript 这么语言,已经在各个领域百花齐放了。

尤其是在 Web 服务、构建工作流、Electron 这三个领域已经广泛使用。
下面我将介绍 Node.js 在这些领域的应用和优势。

Web服务

  • 搜索引擎优化 + 首屏速度优化 = 服务端渲染即SSR(Server Side Rendering)
  • 前后端同构(模板复用)。
  • BFF(Backend For Frontend)。

构建工作流

在没有 Gulp 和 webpack 等构建工具之前,前端工程师可能会用 java、ruby、shell 做一些构建工具,而这些语言对于前端工程师不是那么熟练,而用 Node.js 做构建工具,前端工程师将更容易的查找、修改、扩展构建工具。

Gulp

gulp 将开发流程中让人痛苦或耗时的任务自动化,从而减少你所浪费的时间、创造更大价值。
在这里插入图片描述
从上图的例子我们可以看出它能给 html、css、js 做一些如下预处理:

  • 编译和整理 Pug 文件为相应的 HTML 文档。
  • 将 less 文件编译为 css 文件。
  • 将 js 文件打包压缩、混淆为一个文件。

webpack

webpack 通过一些规范把 js、css、图片等打包在一起,这样就能减少前端尽可能少的 HTTP 连接,加速网页的加载。

在这里插入图片描述

KttDeploy

我司开发的 KttDeploy 就是用 Node.js 写的,用于打包 H5 资源文件给 App 调用。
在这里插入图片描述

Electron

Electron 基于 Chromium 和 Node.js, 让你可以使用 HTML、CSS 和 JavaScript 构建兼容 Mac、Windows 和 Linux 的桌面应用程序。

在用 Electron 之前我用过 Delphi、C# 开发 Windows 桌面应用。尤其使用 C# 开发了很多企业级应用,C# 也确实方便,但是要跨平台就难了。如果应用只运行在 Windows 上,用陈旧的 Winform 的话,要做出好看的 UI 又有一定难度且没有 Web 开发效率高,所以只考虑运行在 Windows 上,又要做出好看的 UI,那就用 WPF 吧!

Electron 的优势

Web技术

因为 Electron 基于 Chromium 和 Node.js,如果你可以建一个网站,你就可以建一个桌面应用程序。 Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。

开源

Electron 是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目。

跨平台

Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。

使用 Electron 开发的 Apps

  • Visual Studio Code
  • Facebook Messenger
  • Twitch
  • Microsoft Teams
  • InVison
  • 等等,实在是太多了

    我用 Electron 开发的桌面应用

    我之前公司开发的一款即插即用触摸输入密码的 USB 工具 HelloKey,且该工具就是通过 Node.js 和设备进行HID通信,支持macOS、Windows、Linux。

Node.js 可以用来做什么?

https://ganzhixiong.com/p/322367d4/

Author

干志雄

Posted on

2021-10-17

Updated on

2021-10-17

Licensed under

Comments