清明假期过得挺快,3天说没就没了,天热了今天把房间打扫了一下,看着挺舒心的。周六了解了下进程管理的Process模块,由于进程管理知识也比较多,今天先把其他的一些模块了解一下,进程管理这块以后慢慢学。

一、OS模块

OS模块主要是获取操作系统信息。

var os = require('os');
//返回一个指向操作系统默认临时目录的字符串 如果需要临时存储文件,然后再删除可以放在这
console.log("tmpdir :\t" + os.tmpdir());
//根据机器的体系结构,对于大端和小端编码,分别返回BE或LE
console.log("endianness :\t" + os.endianness());
//机器的主机名
console.log("hostname :\t" + os.hostname());
//操作系统类型字符串类型
console.log("type :\t\t" + os.type());
//平台名称 字符串类型
console.log("platform :\t" + os.platform());
//体系结构 字符串类型
console.log("arch :\t\t" + os.arch());
//操作系统发布版本
console.log("release :\t" + os.release());
//操作系统已经运行多久,返回以秒为单位的时间戳
console.log("uptime :\t" + os.uptime());
//在基于UNIX系统中,返回一个包含[1,5,15]分钟的系统负载值得数组
console.log("loadavg :\t" + os.loadavg());
//系统内存容量 字节单位
console.log("totalmem :\t" + os.totalmem());
//可用的系统内存 字节单位
console.log("freemem :\t" + os.freemem());
//EOL包含操作系统相应的行尾字符,用在处理字符串数据时,使一个应用程序跨平台兼容
console.log("EOL :\t" + os.EOL);
//返回描述了model(型号)、speed(速度)和time(时间)的对象的数组,此数组包含CPU已经花费在user、nice、sys、dle、irq上的时间
console.log("cpus :\t\t" + JSON.stringify(os.cpus()));
//返回一个对象数组,描述绑定到操作系统中的每个网络接口上的address(地址)和family(地址族)
console.log("networkInterfaces : " +
JSON.stringify(os.networkInterfaces()));
tmpdir :    C:\Users\ADMINI~1\AppData\Local\Temp
endianness : LE
hostname : Lenovo-PC
type : Windows_NT
platform : win32
arch : x64
release : 10.0.10240
uptime : 857903.0353439
loadavg : 0,0,0
totalmem : 4202979328
freemem : 609837056
EOL : cpus : [{"model":"Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz","speed":2494,"times":{"user":14228468,"nice":0,"sys":16551359,"idle":266524781,"irq":3004875}},{"model":"Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz","speed":2494,"times":{"user":13634187,"nice":0,"sys":17665812,"idle":266004171,"irq":5612906}},{"model":"Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz","speed":2494,"times":{"user":14396953,"nice":0,"sys":17213171,"idle":265694046,"irq":2041984}},{"model":"Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz","speed":2494,"times":{"user":15294390,"nice":0,"sys":19912703,"idle":262097078,"irq":2563078}}]
networkInterfaces : {"WLAN":[{"address":"fe80::ec29:33b8:7d3d:28e0","netmask":"ffff:ffff:ffff:ffff::","family":"IPv6","mac":"48:5a:b6:d5:44:8f","scopeid":16,"internal":false},{"address":"192.168.1.103","netmask":"255.255.255.0","family":"IPv4","mac":"48:5a:b6:d5:44:8f","internal":false}],"Loopback Pseudo-Interface 1":[{"address":"::1","netmask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff","family":"IPv6","mac":"00:00:00:00:00:00","scopeid":0,"internal":true},{"address":"127.0.0.1","netmask":"255.0.0.0","family":"IPv4","mac":"00:00:00:00:00:00","internal":true}],"本地连接* 13":[{"address":"2001:0:5ef5:79fb:3079:3794:c272:4da6","netmask":"ffff:ffff:ffff:ffff::","family":"IPv6","mac":"00:00:00:00:00:00","scopeid":0,"internal":false},{"address":"fe80::3079:3794:c272:4da6","netmask":"ffff:ffff:ffff:ffff::","family":"IPv6","mac":"00:00:00:00:00:00","scopeid":9,"internal":false}]} Process finished with exit code 0

二、util模块

1.格式化字符串

//util.format(format,[....])
//util.format(format,[....])接收一个格式化字符串作为第一个参数,并返回一个格式化后的字符串
//占位符类型:%s:指定字符串 %d:指定一个数值(可是整数或浮点数) %j:指定一个JSON可转换为字符串的对象
//%:如果%后保留为空,则不作为占位符
//同时有几个要注意的地方:
//1.占位符比参数多时,多余的占位符如%s都不会被替换
//2.参数比占位符多时,多余的参数被转换为字符串,然后用空格分隔符连接
//3.如果第一个参数不是一个格式字符串,那么会把每个参数都转换为字符串,用空格分隔符将其连接起来,并返回
var result=util.format('% s=%s','abc');
console.log(result);
result=util.format('%s=%s','abc');
console.log(result);
result=util.format('%s','abc','def');
console.log(result);
result=util.format('1','abc','def');
console.log(result);
% s=abc
abc=%s
abc def
1 abc def
4 Apr 19:40:47 - 1 abc def Process finished with exit code 0

2.检查对象类型

查看util模块的源码有isArray()、isBoolean()、isNull()、isNullOrUndefined()、isNumber()、isString()、isSymbol()、isUndefined()、isRegExp()、isObject()、isDate()、isError()、isFunction()、isPrimitive()、isBuffer()函数。

var  result=util.isArray([1,2,3]);
console.log(result);
result=util.isNull(result);
console.log(result);
result=util.isDate(new Date());
console.log(result);
true
false
true Process finished with exit code 0

3.同步写入输出流

util提供了debug()、error()、puts()、print()、log()等方法同步写数据到stdout、stderr。这意味着这一进程保持阻塞,直到数据被写出来。但是在看它的源码时已经提示这些方法已经被其他方法替换了。

 'util.exec is deprecated. Use child_process.exec instead.'
'util.print is deprecated. Use console.log instead.'
'util.puts is deprecated. Use console.log instead.'
'util.debug is deprecated. Use console.error instead.'
'util.error is deprecated. Use console.error instead.'
'util.pump is deprecated. Use readableStream.pipe instead.'

4.将JavaScript对象转换为字符串

util.inspect(object,[options])方法检查对象,并返回对象的字符串表示形式。这个方法在上面博客的也有提到。

options可包含以下属性 :

showHidden:true时,该对象的不可枚举的属性也被转换成字符串,默认false

depth:当格式化属性也是对象时,限制检查过程遍历的深度。可以防止无限循环,并防止复杂的对象花费大量的CPU周期。默认为2.如果为空(null),则可无限递归下去。

colors:true时,输出使用ANSI颜色代码的样式,默认false。

customInspect:false时,被检查的对象定义的任何自定义inspect()函数都不会被调用,默认true。

可以把自定义的inspect()函数附加到一个对象,以便控制输出。

var  obj={first:'brad',last:'dayley'};
obj.inspect=function(depth){
return '{name:"'+this.first+" "+this.last+'"}';
};
console.log(util.inspect(obj));
{name:"brad dayley"}

Process finished with exit code 0

5.从其他对象继承功能

这个功能在之前已经了解过了。http://www.cnblogs.com/5ishare/p/5299493.html

三、使用dns模块

dns模块能够解析dns域名、查找域、或做方向查找。常见以下方法 :

lookup(domain,[family],callback):解析域名。family属性可以是4、6或者null。4:解析第一个找到的A(IPv4)记录,6:解析第一个找到的AAAA(IPv6)记录,null:两者都解析,默认null。callback函数第一个接收error,第二个接收一个IP地址的数组。function(error,addresses)

resolve(domain,[rrtype],callback):把域名解析成类型由rrtype指定的记录数组。function(error,addresses)

A:IPv4地址(默认)

AAAA:IPv6地址。

MX:邮件交换记录。

TXT:文字记录。

SRV:SRV记录。

PTR:反向IP查找。

NS:名称服务器记录。

CNAME:规范名称记录。

resolve4(domain,callback):同dns.resolve()。只解析A记录。

resolve6(domain,callback):同dns.resolve()。只解析AAAA记录。

resolveMX(domain,callback):同上,只解析MX记录

resolveTxt(domain,callback):同上,只解析TXT记录

resolveSrv(domain,callback):同上,只解析SRV记录

resolveNs(domain,callback):同上,只解析NS记录

resolveCname(domain,callback):同上,只解析CNAME。

reverse(ip,callback):对IP地址进行方向查找。如果发生错误,则callback函数接收一个error对象,如果查找成功,则接收域的数组。function(error,dimains).

var dns = require('dns');
console.log("Resolving www.baidu.com . . .");
dns.resolve4('www.baidu.com', function (err, addresses) {
console.log('IPv4 addresses: ' + JSON.stringify(addresses, false, ' '));
addresses.forEach(function (addr) {
dns.reverse(addr, function (err, domains) {
console.log('Reverse for ' + addr + ': ' + JSON.stringify(domains));
});
});
});
Resolving www.baidu.com . . .
IPv4 addresses: [
"14.215.177.38",
"14.215.177.37"
]
Reverse for 14.215.177.38: undefined
Reverse for 14.215.177.37: undefined Process finished with exit code 0

Node.js其他模块的更多相关文章

  1. Node.js的模块载入方式与机制

    Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始 ...

  2. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

  3. Node.js工具模块

    在Node.js的模块库中提供实用的模块数量. 这些模块都是很常见的,并同时开发基于任何节点的应用程序频繁使用. S.N. 模块的名称和说明 1 OS Module提供基本的操作系统相关的实用功能 2 ...

  4. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  5. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  6. node.js之模块

    node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...

  7. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  8. Node.js DNS 模块

    Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & 描述 1 dns.loo ...

  9. Node.js Net 模块

    Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require("net") ...

  10. Node.js OS 模块

    Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 & 描述 1 os ...

随机推荐

  1. Emmet常用语法

    Emmet常用语法1.输入!和html:5(不能大写),按下TAB 键,快速生成一个 HTML5 的标准文档初始结构. html:xt 生成 HTML4 过渡型 html:4s 生成 HTML4 严格 ...

  2. c# 合并重叠时间段的算法

    c# 合并重叠时间段的算法 一.采用非排序: 方案一: 使用递归算法,如不喜欢递归的伙伴们,可以使用whie代替. 1.文件:Extract_Chao.cs(核心) using System; usi ...

  3. 【自动化专题】借助firefox插件定位web元素小技巧

    浏览器:firefox 插件:firebug.firepath.firefinder 安装插件---已安装的请跳过 1.安装firefox浏览器 2.打开firefox-附加组件(找不到入口的问度娘) ...

  4. Python 使用 lambda() 结合sort() 或 sorted() 对列表嵌套字典格式的数据进行排序

    1.使用sort()方法进行排序 my_list = [{"age":65, "money":5}, {"age":35, "mo ...

  5. jzoj3519

    我們考慮將一個節點x的所有兒子的數都改成y 記lcm[x]表示一個點的所有子節點的lcm值 那麼我們會發現y*deg[x] 要被lcm[x]整除 那麼x就會比x所有子節點最小的數小,記為z 那麼x就是 ...

  6. 双向链表的实现——c++

    c++实现双向链表 : #ifndef DOUBLE_LINK_HXX #define DOUBLE_LINK_HXX #include <iostream> using namespac ...

  7. 四,php异常处理

    1,异常处理 异常处理用于在指定的异常或错误发生时,改变脚本的正常执行流程. <?php try{ //错误或异常 }catch (Exception $ex){ //处理异常 //抛出异常 } ...

  8. ubuntu 中 mongodb 数据读写权限配置

    首先,我们先对mongodb 数据库的权限做一点说明: 1 默认情况下,mongodb 没有管理员账号 2 只有在 admin 数据库中才能添加管理员账号并开启权限 3 用户只能在所在的数据库中登录, ...

  9. python 初步认识Flask

    1.简介 flask 问题一:  访问百度的流程? a. 客户端: 发送请求报文,  请求行, 请求头, 请求体 b.服务端: 解析请求的报文, 解析域名, 进行路由匹配分发找到对应的视图函数, 打包 ...

  10. 【xsy1097】 拼图 构造题

    题目大意:请你使用n个图形拼成一个矩形.要求:①这每个图形都由1×1的小正方形组成,而且第i个图形由i个小正方形组成.②除了第1个和第2个图形以外,任意一个图形的所有小正方形,不都在一条直线上. 数据 ...