资讯专栏INFORMATION COLUMN

Node.js学习之路19——punycode模块与os模块

xumenger / 1633人阅读

摘要:模块转换为编码模块内部使用类库以将域名从地方语言所采用的各种编码转换为可用于服务器的编码因为操作系统的核心都是英文服务器的解析也是由英文代码交换所以服务器并不支持直接的使用地方语言的域名解析所有地方语言域名的解析都需要转成编码然后由服务器解

1. punycode

punycode模块转换为punycode编码

punycode模块内部使用punycode.js类库,以将域名从地方语言所采用的各种编码转换为可用于DNS服务器的punycode编码,因为操作系统的核心都是英文,DNS服务器的解析也是由英文代码交换,所以DNS服务器并不支持直接的使用地方语言的域名解析,所有地方语言域名的解析都需要转成punycode编码,然后由DNS服务器解析punycode编码.

encode(string),将一个Unicode编码字符串转换为一个punycode编码字符串

decode(string),将一个punycode编码字符串转成一个Unicode编码字符串

toASCII(domain),用于将一个Unicode编码格式的域名转换为一个punycode编码格式的域名,该方法只能转换地方语言域名,不转换英文域名

toUnicode(domain),用于将一个punycode编码格式的域名转换为Unicode编码格式的域名,该方法只能转换地方语言域名,不转换英文域名

ucs2.encode(codePoints),用于将一个UCS-2编码数组转换成一个字符串

ucs2.decode(string),用于将一个字符串转换为一个UCS-2编码数组

punycode.version,显示punycode.js类库的版本号

const punycode = require("punycode");
console.log(punycode.encode("你好"));// 6qq79v
console.log(punycode.decode("6qq79v"));// 你好
console.log(punycode.toASCII("www.你好.com"));// www.xn--6qq79v.com
console.log(punycode.toUnicode("www.xn--6qq79v.com"));// www.你好.com
console.log(punycode.ucs2.encode([97, 98, 99])); // abc
console.log(punycode.ucs2.encode([0x1D306])); // uD834uDF06
console.log(punycode.ucs2.decode("abc")); // [ 97, 98, 99 ]
console.log(punycode.ucs2.decode("uD834uDF06")); // [ 119558 ]
2. os模块

使用os模块获取操作系统信息

os.tmpdir(),获取操作系统中默认的用于存放临时文件的目录

os.endianness(),获取CPU的字节序,返回的值可能是BELE

os.hostname(),获取计算机名

os.type(),获取操作系统类型

os.platform(),获取操作系统平台

os.arch(),获取CPU架构

os.release(),获取操作系统版本号

os.uptime(),获取系统当前的运行时间,单位为秒

os.loadavg(),返回一个数组,其中存放了1分钟,5分钟,15分钟的系统平均负载

os.totalmem(),返回系统的总内存量,单位为字节

os.freemem(),返回系统的空闲内存量

os.cpus(),返回一个数组,存放了CPU内核的各种信息,包括CPU规格,运行速度(单位是MHz)及运行时间信息

os.networkInterfaces(),返回一个数组,存放了系统中所有网络接口

os.EOL,定义一个EOL常量,常量值为操作系统中使用的换行符

const os = require("os");
console.log(os.tmpdir());           // /tmp
console.log(os.endianness());       // LE
console.log(os.hostname());         // Homer
console.log(os.type());             // Linux
console.log(os.platform());         // linux
console.log(os.arch());             // x64
console.log(os.release());          // 3.10.0-693.17.1.el7.x86_64
console.log(os.uptime());           // 108
console.log(os.loadavg());          // [ 2.48583984375, 1.01318359375, 0.3740234375 ]
console.log(os.totalmem());         // 1910771712
console.log(os.freemem());          // 76935168
console.log(os.cpus());
/**
* [ { model: "Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz",
*       speed: 2401,
*       times: { user: 194900, nice: 21800, sys: 210000, idle: 477900, irq: 0 } },
*     { model: "Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz",
*       speed: 2401,
*       times: { user: 157300, nice: 19400, sys: 205400, idle: 543800, irq: 0 } },
*     { model: "Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz",
*       speed: 2401,
*       times: { user: 149700, nice: 4200, sys: 212600, idle: 548500, irq: 0 } },
*     { model: "Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz",
*       speed: 2401,
*       times: { user: 156200, nice: 2600, sys: 213100, idle: 501300, irq: 0 } } ]
* **/
console.log(os.networkInterfaces());
/**
* { lo: 
*      [ { address: "127.0.0.1",
*          netmask: "255.0.0.0",
*          family: "IPv4",
*          mac: "00:00:00:00:00:00",
*          internal: true },
*        { address: "::1",
*          netmask: "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
*          family: "IPv6",
*          mac: "00:00:00:00:00:00",
*          scopeid: 0,
*          internal: true } ],
*     ens33: 
*      [ { address: "192.168.71.147",
*          netmask: "255.255.255.0",
*          family: "IPv4",
*          mac: "00:0c:29:e3:04:c1",
*          internal: false },
*        { address: "fe80::20c:29ff:fee3:4c1",
*          netmask: "ffff:ffff:ffff:ffff::",
*          family: "IPv6",
*          mac: "00:0c:29:e3:04:c1",
*          scopeid: 2,
*          internal: false } ] }
***/
console.log(os.EOL);                // 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92994.html

相关文章

  • 初识Node.js

    摘要:一旦替换已经完成,该模块将被完全弃用。用作错误处理事件文件,由在标准功能上的简单包装器提供所有模块都提供这些对象。 Node.js简介 Node 定义 Node.js是一个建立在Chrome v8 引擎上的javascript运行时环境 Node 特点 异步事件驱动 showImg(https://segmentfault.com/img/bVMLD1?w=600&h=237); no...

    lk20150415 评论0 收藏0
  • 系统架构

    强力推荐!那些你不能错过的 GitHub 插件和工具 以代码托管平台起家的 GitHub 网站,已然成为全球程序员工作和生活中不可或缺的一份子。从优秀的企业,到优秀的程序员,都将自己最优秀的代码作品存放在这片开源净土里,供彼此学习交流。 GitHub Trending 栏目甚至已经成为 IT 从业人员的新闻日报,每日必读。在之前的一… PostgreSQL 数据库的前世今生 编辑:IT大咖说阅读字...

    Gilbertat 评论0 收藏0
  • 系统架构

    强力推荐!那些你不能错过的 GitHub 插件和工具 以代码托管平台起家的 GitHub 网站,已然成为全球程序员工作和生活中不可或缺的一份子。从优秀的企业,到优秀的程序员,都将自己最优秀的代码作品存放在这片开源净土里,供彼此学习交流。 GitHub Trending 栏目甚至已经成为 IT 从业人员的新闻日报,每日必读。在之前的一… PostgreSQL 数据库的前世今生 编辑:IT大咖说阅读字...

    k00baa 评论0 收藏0
  • 【译文】Node.js官方文档(前言&目录)

    摘要:毕竟官方文档才是未经提炼的纯技术点,读书不能只读二手书。目前网上能找到的中文文档基本都是基于的,但截至此文发布,最新的稳定版都已经是了。翻译过程中主要参考官方英文文档,以及极客学院的官方文档中文翻译。 前言 相信很多开发者和我一样,在学习一门技术的时候,通过网上的各种教程和视频入门之后会发现自己遇到一个上升瓶颈。造成这个瓶颈的很大一部分原因,我认为是进阶教程的知识点过于分散,同时高质量...

    tinna 评论0 收藏0
  • Node.js学习之路20——readline模块util模块

    摘要:使用模块逐行读取流数据创建对象在模块中,通过对象的使用来实现逐行读取流数据的处理。属性值为一个可用来写入流数据的对象,用于指定数据的输出目标。属性值为一个函数,用于指定补全处理。 1. 使用readline模块逐行读取流数据 1.1. 创建Interface对象 在readline模块中,通过Interface对象的使用来实现逐行读取流数据的处理。因此首先要创建Interface对象,...

    XFLY 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<