丙午🐎年

acc8226 的博客

util 是一个 Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。

util.inherits
util.inherits(constructor, superConstructor) 是一个实现对象间原型继承的函数。

JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的。

在这里我们只介绍 util.inherits 的用法,示例如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var util = require("util")

function Base() {
this.name = "base"
this.base = 1991
this.sayHello = function () {
console.log("Hello " + this.name)
}
}

Base.prototype.showName = function () {
console.log(this.name)
}

function Sub() {
this.name = "sub"
}

util.inherits(Sub, Base)
var objBase = new Base()
objBase.showName()
objBase.sayHello()
console.log(objBase)
var objSub = new Sub()
objSub.showName()
//objSub.sayHello();
console.log(objSub)
阅读全文 »

为了让 Node.js 的文件可以相互调用,Node.js 提供了一个简单的模块系统。

模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过的 C/C++ 扩展。

阅读全文 »

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。

但在处理像 TCP 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

Buffer 与字符编码

Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换。

阅读全文 »

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API。 Node 导入文件系统模块(fs)语法如下所示: const fs = require("fs")

异步和同步

Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。

异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。

建议大家使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。

阅读全文 »

PM2 是一个守护进程管理器,它将帮助您管理和保持应用程序在线。开始使用 PM2 非常简单,它提供了一个简单直观的 CLI,可以通过 NPM 安装。

安装

npm install pm2@latest -g

启动应用

启动 js

pm2 start app.js --name=“api”
启动应用程序并命名为 “api”

启动应用程序并指定参数并命名

示例(这里用了双引号)

1
2
3
4
5
6
// 基地气象1 WeatherSensor1
pm2 start "node airSensor.js 192.168.18.105 WeatherSensor1" --name WeatherSensor1
// 土壤1 SoilSensor1
pm2 start "node soilSensor.js 192.168.18.105 SoilSensor1" --name SoilSensor1
// 室内气象1 IndoorWeatherSensor1
pm2 start "node airSensor.js 192.168.18.105 IndoorWeatherSensor1" --name IndoorWeatherSensor1

停止服务

停止所有服务
pm2 stop all

停止指定服务
pm2 stop WeatherSensor1

0%