Express是一个Web开发框架。Express本质上是NPM上的一个第三方模块,提供了快速创建Web服务器、API接口服务器的方法。Express中文网地址为https://www.expressjs.com.cn/,官网地址为https://expressjs.com/。 使用Node.js提供的原生http模块也一样可以创建Web服务器。只不过http模块用起来很麻烦、开发效率低,而Express在基于http的基础上进行了进一步的封装,能极大提高开发效率。 安装Express 4.17.2版本: 1npm i express@4.17.2 使用Express的基本步骤如下: 1const express =...

在VS Code中,编写代码或者Markdown时,中文字符与英文字符通常是无法对齐的。可以通过使用Ubuntu Mono字体,让VS Code的中英字符能够对齐。 Ubuntu Mono字体可以从https://github.com/powerline/fonts下载。可以直接通过网页下载其zip压缩包,或者将其clone到本地: 1git clone https://github.com/powerline/fonts 如果是在Windows上安装该字体,可以找到项目下的UbuntuMono文件夹,直接双击打开.ttf文件,根据显示的内容提示,就能完成安装。 找到UbuntuMono文件夹并打开,双击打开下方红框中所有.tff文...

包 在Node.js中,第三方模块又称为包。第三方模块与包的概念相同,仅仅在称呼上有差异。包是由第三方个人或团队开发出来的,免费供所有人使用。 Node.js中的包都是免费且开源的,不需要付费即可下载使用。 包是基于内置模块封装出来的,提供了更高级、更方便的API,极大地提高了开发效率。 NPM 在 npm, Inc. 公司旗下的网站https://www.npmjs.com上,可以搜索到任何你需要的包。该网站是全球最大的包共享平台。在该网站上,你还能浏览到对应包的相关文档。 npm, Inc. 公司提供了地址为https://registry.npmjs.org/的服务器,来对外共享所有的包。可以通过该服务器来下载所需的包。 使...

模块化概念 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、可分解和可更换的单元。 在模块化时,要遵守固定的规则(模块化规范),把一个大文件拆成独立并互相依赖的多个小模块。 进行模块化拆分的好处: 提高了代码的复用性。 提高了代码的可维护性。 可以实现按需加载。 遵守同样的模块化规范,有利于降低沟通的成本,极大地方便了各个模块之间的相互调用,利人利己。 Node.js 模块化 Node.js中根据模块来源的不同,将模块分为了3大类,分别是: 内置模块:由Node.js官方提供,例如fs、path、http等。 自定义模块:用户自定义的模块。在Node.js中,用户创建的每个...

http模块是Node.js官方提供的、用于创建Web服务器的模块。通过http模块提供的http.createServer()方法,就能像Web服务器一样对外提供Web资源服务。 在Node.js中无需使用第三方Web服务器软件,通过http模块就能模拟服务器软件,从而对外提供Web服务。 http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能必须调用http模块。在Node.js中使用Web服务的基本步骤如下: 导入http模块: 1const http = require('http') 创建Web服务器实例。 1const server = http.createServer() 为服务器实例绑定...

Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者时退出。每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。 事件驱动程序 Node.js 使用事件驱动模型。在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数: 这套流程有点类似于观察者模式,事件相当于一个主题(Subject),而所有注册到这个事件上的...

使用fs模块,首先需要导入: 1const fs = require('fs') 读取文件 下方是一个通过fs.readFile()读取文件的示例: 1// 1. 导入fs模块,来操作文件 2const fs = require('fs') 3/** 4 * 2. 调用 fs.readFile() 方法读取文件 5 * - 参数1(必须):读取文件的存放路径 6 * - 参数2(可选):读取文件时采用的编码格式,默认指定utf8 7 * - 参数3(必须):回调函数,拿到读取失败(err)和成功的结果(dataStr) 8 */ 9fs.readFile('test.txt', 'utf-8', (err, dataStr) =>...

Node.js是一个基于Chrome V8引擎的JavaScript运行环境。 浏览器可以当作是JavaScript的前端运行环境;Node.js可以看作是JavaScript的后端运行环境。但是在Node.js中无法调用DOM和BOM等浏览器内置API。 Node.js的安装这里就不介绍了,推荐使用NVM来管理Node.js:NVM安装。 查看Node.js的版本: 1node -v 升级npm: 1sudo npm install npm -g NPM NPM(Node Package Manager)是 Node.js 的包管理工具,用于在 Node.js 环境中安装、管理和共享代码模块。NPM 是随同 Node.js 一起安...

Debian 安装 NVM NVM(Node Version Manager)是一个用于管理 Node.js 版本的工具。它允许你在同一台机器上同时安装和切换不同的 Node.js 版本,以便于在不同项目中使用特定的 Node.js 版本。 NVM 支持在 Linux、macOS、和 Windows 系统上使用,并且与不同的 Shell(如 Bash、Zsh)兼容。 在Debian上安装NVM的步骤如下(Ubuntu同理): 安装NVM之前,需要先安装依赖: 1sudo apt update 2sudo apt upgrade 3sudo apt install curl build-essential gnupg2 -y 下载并...

AMQP(Advanced Message Queuing Protocol)是用于在应用程序之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微服务中独立性的要求。 RabbitMQ实现了AMQP协议。Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,spring-rabbit是底层的默认实现。 Spring AMQP的依赖如下,其中包含了RabbitMQ的依赖: 1<!-- AMQP依赖,包含RabbitMQ --> 2<dependency> 3...