Node.js 实战 第1章 欢迎进入Node.js 的世界 1.5 三种主流的Node 程序 1.6 总结
创始人
2024-01-20 07:14:13
0

Node.js 实战

文章目录

      • Node.js 实战
      • 第1章 欢迎进入Node.js 的世界
        • 1.5 三种主流的Node 程序
          • 1.5.1 Web 应用程序
          • 1.5.2 命令行工具和后台程序
          • 1.5.3 桌面程序
          • 1.5.4 使用Node 的应用程序
        • 1.6 总结

第1章 欢迎进入Node.js 的世界

1.5 三种主流的Node 程序

Node 程序主要可以分成三种类型:

  • Web 应用程序【单页应用的简单程序、REST微服务、全栈的Web应用…】

  • 命令行工具和后台程序【Node写的命令行工具npm Gulp Webpack、后台程序就是后台服务,比如PM2进程管理器】

  • 桌面程序【一般是用Electron框架写的软件】

    Electron 用Node 作为基于Web 的桌面应用的后台,Atom 和Vscode 等文本编辑器都属于这一类

1.5.1 Web 应用程序

因为 Node是服务器端JavaScript平台,所以用它搭建Web应用程序是理所当然的事情。

既然客户端和服务器端用的都是JavaScript,代码难免会有在这两种环境里重用的机会。

Node Web一般使用Express 这样的框架写的。

举个栗子:

创建一个新目录,快速创建一个一个Express Web 应用程序

在这里插入图片描述

编写一个server.js 应用

const express = require('express');
const app = express();app.get('/', (req, res) => {res.send('Hello world!');
});app.listen(3000, () => {console.log('Express web app on localhost:3000');
});

输入npm start 命令,启动这个服务

在这里插入图片描述

使用浏览器访问对应的地址http://localhost:3000/

在这里插入图片描述

在前端开发的世界中,Node也在发挥着重要作用,因为它是进行语言转译的主要工具,比如从TypeScript到JavaScript。转译器将一种高级语言编译成另外一种高级语言,传统的编泽器则将一种高级语言编译成一种低级语言。

并不是所有的Web开发都会涉及Web应用的构建。有时候,在重建一个网站时,你需要把数据从老网站上扒出来。

1.5.2 命令行工具和后台程序

Node可以用来编写命令行工具,比如 JavaScript开发人员所用的进程管理器和JavaScript转译器。

它也可以作为一种方便的方式来编写其他操作的命令行工具,比如图片转换、控制媒体文件播放的脚本等。

举个栗子:

创建一个名为cli.js 的新文件,添加如下代码

const [nodePath, scriptPath, name] = process.argv;
console.log('Hello' , name);

使用node cli.js DingJiaxiong命令运行:

在这里插入图片描述

这里使用到了ES6中的解构,它会从process.argv 中拉取第三个参数。

所有Node 程序都可以访问process 对象,这是用户向程序传递参数的基础。

Node命令行程序还可以做其他事情。

如果在程序开头的地方加上#!,并赋予其执行许可( chmod +x cli.js ), shell就可以在调用程序时使用Node。

也就是说可以像运行其他 shell脚本那样运行Node程序。在类Unix系统中用下面这样的代码:

#!/usr/bin/env node

这样就可以使用Node 代替shell脚本,也就是说Node 可以和其他任何命名行工具配合,包括后台程序。Node 程序可以由cron 调用,也可以作为后台程序运行。

1.5.3 桌面程序

如果你用过 Atom或Visual Studio Code文本编辑器,那就用过Node。

Electron框架用Node做后台,所以只要需要访问硬盘或网络,Electron就会用到Node。Electron还用Node来管理依赖项,也就是说你可以用npm往 Electron项目里添加包。

我现在就想试一下!

复制Electron 的存储库并启动一个应用程序

git clone https://github.com/electron/electron-quick-startcd .\electron-quick-start\npm installnpm start

在这里插入图片描述

厉害了

这里npm install如果出现卡顿,请一定换成淘宝镜像,就会很快。

1.5.4 使用Node 的应用程序

看到这里,我们已经见识过了一些能用Node 搭建的应用程序了,其实Node 擅长的领域不止于此。

Node一般用来创建实时的Web应用,这几乎无所不包,从直接面对用户的聊天服务器到采集分析数据的后台程序都属于此类。

在JavaScript 中,函数是一等对象,Node又有内建的事件模型,所以用它来写异步实时程序比用其他脚本语言更自然。

如果要搭建传统的模型-视图-控制器(MVC )Web应用,用Node也很适合。

Ghost等一些流行的博客引擎就是用Node搭建的。在搭建这几种类型的Web应用程序方面,Node是一个经过实践检验的平台。虽然开发风格跟用PHP的 WordPress 不同,但Ghost支持的功能是类似的,包括模板和多用户管理区。

Node还能做一些用其他语言很难做到的事情。它是基于JavaScript的,所以在Node中能运行浏览器中的JavaScript。复杂的客户端应用可以经过改造在Node服务器上运行,让服务器进行预渲染,从而加快页面在浏览器中的渲染速度,也有利于搜索引擎进行索引。

最后,如果你想要搭建一个桌面端或移动端应用,建议试一下Electron,它也是由Node支撑起来的。

现在Web用户界面的体验跟桌面端应用一样丰富,Electron桌面端应用足以抗衡本地Web应用,还能缩短开发时间。Electron支持三种主流操作系统,所以你可以在Windows、Linux和 macOS上重用这些代码。

1.6 总结

  • Node是用来搭建JavaScript应用程序的平台,有基于事件和非阻塞的特性。
  • V8被用作JavaScript运行时。
  • libuv是提供快速、跨平台、非阻塞IO的本地库。
  • 被称为核心模块的 Node标准库很精巧,为JavaScript添加了磁盘I/O.
  • Node自带了一个调试器和一个依赖管理器(npm )。
  • Node可以用于搭建Web应用程序、命令行工具,甚至桌面程序。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...