OS---------------------------------------------
Node.js os 模块提供了一些基本的系统操作函数。
var os = require("os")
方法
序号 方法 & 描述
1 os.tmpdir()
返回操作系统的默认临时文件夹。
2 os.endianness()
返回 CPU 的字节序,可能的是 "BE" 或 "LE"。
3 os.hostname()
返回操作系统的主机名。
4 os.type()
返回操作系统名
5 os.platform()
返回编译时的操作系统名
6 os.arch()
返回操作系统 CPU 架构,可能的值有 "x64"、"arm" 和 "ia32"。
7 os.release()
返回操作系统的发行版本。
8 os.uptime()
返回操作系统运行的时间,以秒为单位。
9 os.loadavg()
返回一个包含 1、5、15 分钟平均负载的数组。
10 os.totalmem()
返回系统内存总量,单位为字节。
11 os.freemem()
返回操作系统空闲内存量,单位是字节。
12 os.cpus()
返回一个对象数组,包含所安装的每个 CPU / 内核的信息:型号、速度(单位 MHz)、时间(一个包含 user、nice、sys、idle 和 irq 所使用 CPU / 内核毫秒数的对象)。
13 os.networkInterfaces()
获得网络接口列表。
属性
序号 属性 & 描述
1 os.EOL
定义了操作系统的行尾符的常量。 Path---------------------------------------------
Node.js path 模块提供了一些用于处理文件路径的小工具
var path = require("path")
方法
序号 方法 & 描述
1 path.normalize(p)
规范化路径,注意'..' 和 '.'。
2 path.join([path1][, path2][, ...])
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。
3 path.resolve([from ...], to)
将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录为 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
4 path.isAbsolute(path)
判断参数 path 是否是绝对路径。
5 path.relative(from, to)
用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。 在 Windows 上:
path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');
// 返回: '..\\..\\impl\\bbb'
6 path.dirname(p)
返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。
7 path.basename(p[, ext])
返回路径中的最后一部分。同 Unix 命令 bashname 类似。
8 path.extname(p)
返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。
9 path.parse(pathString)
返回路径字符串的对象。
10 path.format(pathObject)
从对象中返回路径字符串,和 path.parse 相反。
属性
序号 属性 & 描述
1 path.sep
平台的文件路径分隔符,'\\' 或 '/'。
2 path.delimiter
平台的分隔符, ; or ':'.
3 path.posix
提供上述 path 的方法,不过总是以 posix 兼容的方式交互。
4 path.win32
提供上述 path 的方法,不过总是以 win32 兼容的方式交互。 Net---------------------------------------------
Net 模块
用于底层的网络通信。提供了服务端和客户端的的操作。
https://www.runoob.com/nodejs/nodejs-net-module.html DNS---------------------------------------------
DNS 模块
用于解析域名。
var dns = require("dns") 方法
序号 方法 & 描述
1 dns.lookup(hostname[, options], callback)
将域名(比如 'runoob.com')解析为第一条找到的记录 A (IPV4)或 AAAA(IPV6) 。参数 options可以是一个对象或整数。如果没有提供 options,IP v4 和 v6 地址都可以。如果 options 是整数,则必须是 4 或 6。
2 dns.lookupService(address, port, callback)
使用 getnameinfo 解析传入的地址和端口为域名和服务。
3 dns.resolve(hostname[, rrtype], callback)
将一个域名(如 'runoob.com')解析为一个 rrtype 指定记录类型的数组。
4 dns.resolve4(hostname, callback)
和 dns.resolve() 类似, 仅能查询 IPv4(A 记录)。 addresses IPv4 地址数组(比如,['74.125.79.104', '74.125.79.105', '74.125.79.106'])。
5 dns.resolve6(hostname, callback)
和 dns.resolve4() 类似, 仅能查询 IPv6(AAAA 查询)
6 dns.resolveMx(hostname, callback)
和 dns.resolve() 类似, 仅能查询邮件交换(MX 记录) 。
7 dns.resolveTxt(hostname, callback)
和 dns.resolve() 类似, 仅能进行文本查询(TXT 记录)。 addresses 是 2 - d 文本记录数组。(比如,[['v=spf1 ip4:0.0.0.0 ', '~all']])。 每个子数组包含一条记录的 TXT 块。根据使用情况可以连接在一起,也可单独使用。
8 dns.resolveSrv(hostname, callback)
和 dns.resolve() 类似, 仅能进行服务记录查询(SRV 记录)。 addresses 是 hostname可用的 SRV 记录数组。 SRV 记录属性有优先级(priority),权重(weight), 端口(port), 和名字(name)(比如,[{ 'priority': 10, 'weight': 5, 'port': 21223, 'name': 'service.example.com' }, ...])。
9 dns.resolveSoa(hostname, callback)
和 dns.resolve() 类似, 仅能查询权威记录(SOA 记录)。
10 dns.resolveNs(hostname, callback)
和 dns.resolve() 类似, 仅能进行域名服务器记录查询(NS 记录)。 addresses 是域名服务器记录数组(hostname 可以使用)(比如, ['ns1.example.com', 'ns2.example.com'])。
11 dns.resolveCname(hostname, callback)
和 dns.resolve() 类似, 仅能进行别名记录查询(CNAME记录) 。addresses 是对 hostname 可用的别名记录数组(比如,, ['bar.example.com'])。
12 dns.reverse(ip, callback)
反向解析 IP 地址,指向该 IP 地址的域名数组。
13 dns.getServers()
返回一个用于当前解析的 IP 地址数组的字符串。
14 dns.setServers(servers)
指定一组 IP 地址作为解析服务器。
rrtypes
以下列出了 dns.resolve() 方法中有效的 rrtypes值: 'A' IPV4 地址, 默认
'AAAA' IPV6 地址
'MX' 邮件交换记录
'TXT' text 记录
'SRV' SRV 记录
'PTR' 用来反向 IP 查找
'NS' 域名服务器记录
'CNAME' 别名记录
'SOA' 授权记录的初始值
错误码
每次 DNS 查询都可能返回以下错误码: dns.NODATA: 无数据响应。
dns.FORMERR: 查询格式错误。
dns.SERVFAIL: 常规失败。
dns.NOTFOUND: 没有找到域名。
dns.NOTIMP: 未实现请求的操作。
dns.REFUSED: 拒绝查询。
dns.BADQUERY: 查询格式错误。
dns.BADNAME: 域名格式错误。
dns.BADFAMILY: 地址协议不支持。
dns.BADRESP: 回复格式错误。
dns.CONNREFUSED: 无法连接到 DNS 服务器。
dns.TIMEOUT: 连接 DNS 服务器超时。
dns.EOF: 文件末端。
dns.FILE: 读文件错误。
dns.NOMEM: 内存溢出。
dns.DESTRUCTION: 通道被摧毁。
dns.BADSTR: 字符串格式错误。
dns.BADFLAGS: 非法标识符。
dns.NONAME: 所给主机不是数字。
dns.BADHINTS: 非法HINTS标识符。
dns.NOTINITIALIZED: c c - ares 库尚未初始化。
dns.LOADIPHLPAPI: 加载 iphlpapi.dll 出错。
dns.ADDRGETNETWORKPARAMS: 无法找到 GetNetworkParams 函数。
dns.CANCELLED: 取消 DNS 查询。
实例
创建 main.js 文件,代码如下所示: var dns = require('dns'); dns.lookup('www.github.com', function onLookup(err, address, family) {
console.log('ip 地址:', address);
dns.reverse(address, function (err, hostnames) {
if (err) {
console.log(err.stack);
} console.log('反向解析 ' + address + ': ' + JSON.stringify(hostnames));
});
});
执行以上代码,结果如下所示: address: 192.30.252.130
reverse for 192.30.252.130: ["github.com"] Domain---------------------------------------------
Domain 模块
简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常。 方法
序号 方法 & 描述
1 domain.run(function)
在域的上下文运行提供的函数,隐式的绑定了所有的事件分发器,计时器和底层请求。
2 domain.add(emitter)
显式的增加事件
3 domain.remove(emitter)
删除事件。
4 domain.bind(callback)
返回的函数是一个对于所提供的回调函数的包装函数。当调用这个返回的函数时,所有被抛出的错误都会被导向到这个域的 error 事件。
5 domain.intercept(callback)
和 domain.bind(callback) 类似。除了捕捉被抛出的错误外,它还会拦截 Error 对象作为参数传递到这个函数。
6 domain.enter()
进入一个异步调用的上下文,绑定到domain。
7 domain.exit()
退出当前的domain,切换到不同的链的异步调用的上下文中。对应domain.enter() 。
8 domain.dispose()
释放一个domain对象,让node进程回收这部分资源。
9 domain.create()
返回一个domain对象。 var EventEmitter = require("events").EventEmitter;
var domain = require("domain"); var emitter1 = new EventEmitter(); // 创建域
var domain1 = domain.create(); domain1.on('error', function (err) {
console.log("domain1 处理这个错误 (" + err.message + ")");
}); // 显式绑定
domain1.add(emitter1); emitter1.on('error', function (err) {
console.log("监听器处理此错误 (" + err.message + ")");
}); emitter1.emit('error', new Error('通过监听器来处理')); emitter1.removeAllListeners('error'); emitter1.emit('error', new Error('通过 domain1 处理')); domain1.remove(emitter1);
emitter1.emit('error', new Error('转换为异常,系统将崩溃!'));

node-OS&Domain&Net&Path的更多相关文章

  1. js与cookie的domain和path之间的关系

    1.前言 使用javascript操作cookie我们都经常使用,对cookie不是很了解的话可以看下这篇帖子[javascript操作cookie](http://www.cnblogs.com/D ...

  2. Node.js Domain 模块

    Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常.引入 Domain 模块 语法格式如下: var domain = require(" ...

  3. cookie中的domain和path

    div.example { background-color: rgba(229, 236, 243, 1); color: rgba(0, 0, 0, 1); padding: 0.5em; mar ...

  4. node os env reader

    node os env reader node-os-env-reader.js #!/usr/bin/env node "use strict"; /** * * @author ...

  5. Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64

    编译项目报错: Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch ...

  6. node的核心模块path

    //导入模块path var path=require("path"); //path.basename :输出文件名+后缀 //console.log(path.basename ...

  7. [Node.js]Domain模块

    Domain(域)模块简化了异步代码的异常处理方式,可以捕捉处理try catch无法捕捉的异常. 引入 var domain=require("domain"); domain模 ...

  8. 路径操作OS模块和Path类(全)一篇够用!

    路径操作 路径操作模块 os模块 os属性 os.name # windows是nt, linux是posix os.uname() # *nix支持 sys.platform #sys模块的属性, ...

  9. cookie在不同域名domain、path下的读取规则

    cookie 子域名可以读父域名中的cookie 如在 .ping.com域下注入cookie,则该子域下的网页如p1.ping.com.p2.ping.com 都能读取到cookie信息 path的 ...

随机推荐

  1. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

  2. ElasticSearch 进阶

    目录 ElasticSearch 进阶 SearchAPI 检索信息 Query DSL 基本语法格式 查询-match 查询-match_phrase 查询-multi_match 查询-bool复 ...

  3. Python--入门接口测试(1)

    1. 什么是接口测试?为什么要做接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过 ...

  4. Linux系统用户与用户组管理

    一.用户和用户组的管理 1.新增组 groupadd 命令 格式:groupadd 组名 2.删除组 groupdel 格式:groupdel 组名 3.增加用用户命令 useradd   格式:us ...

  5. 【图像处理】OpenCV+Python图像处理入门教程(五)阈值处理

    这篇随笔介绍使用OpenCV进行图像处理的第五章 阈值处理. 5  阈值处理 阈值是指像素到达某临界值.阈值处理表示像素到达某临界值后,对该像素点进行操作和处理. 例如:设定一幅图像素阈值为200,则 ...

  6. 【新阁教育】台达DVP-ES3 ModbusTCP通信案例

    本文主要针对台达DVP-ES3系列PLC,实现上位机与PLC之间的ModbusTCP通信. 一.硬件说明 DVP-ES3 系列为高阶应用可编程控制器, CPU 内置4 组高速计数器输入.4组轴输出(脉 ...

  7. 自动统计zabbix过去一周监控告警

    # -*- coding:utf-8 -*-import jsonimport requestsimport time,datetimeimport csv,chardetdef getToken(u ...

  8. ACNet:用于图像超分的非对称卷积网络

    编辑:Happy 首发:AIWalker Paper:https://arxiv.org/abs/2103.13634 Code:https://github.com/hellloxiaotian/A ...

  9. 第1课:Linux操作系统基础【DevOps基础培训】

    第1课:Linux操作系统基础 --DevOps基础培训 1. 云主机.公网IP 1.1 公网ip和私网ip 只有公网ip是能够连接互联网的,私网IP 一般只用作局域网 我们能够上网靠的是isp组织分 ...

  10. SqlServer游标的创建与使用

    前言 大家都对SqlServer视图.存储过程.触发器的创建与使用有一定的了解了,我们来看下什么是游标,怎么使用,什么时候用. SqlServer视图的创建与使用 SqlServer存储过程的创建与使 ...