Node.js 工具模块

来源:互联网 发布:软件设计规范怎么写 编辑:程序博客网 时间:2024/06/05 06:53

学习要点

  • Node.js os 系统操作函数
  • Node.js Path 处理文件
  • Node.js Net 网络通信
  • Node.js Dns 域名解析
  • Node.js Domain(域)

Node.js 工具模块

Node.js os 系统操作函数
案例:os.js

var os = require('os');// 返回操作系统的默认临时文件夹console.log(os.tmpdir());// 返回CPU的字节序console.log(os.endianness());// 返回 OS 的主机名console.log(os.hostname());// 返回 OS 名console.log(os.type());// 返回 OS 名称console.log(os.platform());// 返回 OS CPU 架构console.log(os.arch());// 返回 OS 的发行版本console.log(os.release());// 返回 OS 运行的时间,以秒为单位console.log(os.uptime());// 返回一个包含1、5、15分钟平均负载的数组console.log(os.loadavg());// 返回 OS 空闲内存量,单位是字节console.log(os.freemem());// 返回一个对象数组,包含所安装的每个 CPU内核的信息:// 型号、速度、时间console.log(os.cpus());// 获得网络接口列表console.log(os.networkInterfaces());

这里写图片描述

Node.js Path 处理文件
案例:path.js

var path = require('path');// 规范化路径,注意'..' 和 '.'console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..'));// 连接路径console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..'));// 转换为绝对路劲console.log('resolve : ' + path.resolve('path.js'));// 路径中文件的后缀名console.log('ext name : ' + path.extname('path.js'));

这里写图片描述

Node.js Net 网络通信
案例:浏览器无法工作
net.js

var net = require('net');var server = net.createServer(function (connection) {    console.log('client connected');    connection.on('end', function () {        console.log('客户端关闭连接');    });    connection.write('Hello World!\r\n');    connection.pipe(connection);});server.listen(8888, function () {    console.log('server is listening');});

这里写图片描述

Node.js Dns 域名解析
案例:dns.js

var dns = require('dns');dns.lookup('www.lamport.me', 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));    })})

这里写图片描述

Node.js Domain(域)
简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常
案例:domain.js

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 处理'));var domain2 = domain.create();domain2.on('error', function(err){   console.log("domain2 处理这个错误 ("+err.message+")");});// 隐式绑定domain2.run(function(){   var emitter2 = new EventEmitter();   emitter2.emit('error',new Error('通过 domain2 处理'));   });

这里写图片描述

0 0
原创粉丝点击