关于javascript:nodejs交互工具库-stripansi-address-defaultgateway和joi

39次阅读

共计 4127 个字符,预计需要花费 11 分钟才能阅读完成。

nodejs 交互工具库系列

作用
chalk-pipe 应用更简略的款式字符串创立粉笔款式计划
chalk 正确处理终端字符串款式
Commander.js 残缺的 node.js 命令行解决方案
Inquirer.js 一组通用的交互式命令行用户界面。
slash 零碎门路符解决
minimist 解析参数选项
dotenv 将环境变量从 .env 文件加载到 process.env 中
dotenv-expand 扩大计算机上曾经存在的环境变量
hash-sum 十分快的惟一哈希生成器
deepmerge 深度合并两个或多个对象的可枚举属性。
yaml-front-matter 解析 yaml 或 json
resolve 实现 node 的 require.resolve()算法,这样就能够异步和同步地应用 require.resolve()代表文件
semver npm 的语义版本器
leven 测量两字符串之间的差别 <br/> 最快的 JS 实现之一
lru cache 删除最近起码应用的项的缓存对象
portfinder 主动寻找 800065535 内可用端口号
ora 优雅的终端转轮
envinfo 生成故障排除软件问题 (如操作系统、二进制版本、浏览器、已装置语言等) 时所需的通用详细信息的报告
memfs 内存文件系统与 Node’s fs API 雷同实现
execa 针对人类的流程执行
webpack-merge 用于连贯数组和合并对象,从而创立一个新对象
webpack-chain 应用链式 API 去生成简化 webpack 版本配置的批改
strip-ansi 从字符串中去掉 ANSI 本义码
address 获取以后机器的 IP, MAC 和 DNS 服务器。
default-gateway 通过对 OS 路由接口的 exec 调用取得机器的默认网关
joi JavaScript 最弱小的模式描述语言和数据验证器。

nodejs 交互工具库 — chalk-pipe 和 chalk

nodejs 交互工具库 — commander 和 Inquirer

nodejs 交互工具库 — slash, minimist 和 dotenv, dotenv-expand

nodejs 交互工具库 — hash-sum, deepmerge 和 yaml-front-matter

nodejs 交互工具库 — resolve 和 semver

nodejs 交互工具库 — leven, lru cache 和 portfinder

nodejs 交互工具库 — ora 和 envinfo

nodejs 交互工具库 — memfs 和 execa

nodejs 交互工具库 — webpack-merge 和 webpack-chain

nodejs 交互工具库 — strip-ansi, address, default-gateway 和 joi

strip-ansi

从字符串中去掉 ANSI 本义码

Install

$ npm install strip-ansi

Usage

const stripAnsi = require('strip-ansi');

stripAnsi('\u001B[4mUnicorn\u001B[0m');
//=> 'Unicorn'

stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007');
//=> 'Click'

strip-ansi for enterprise

可作为 Tidelift 订阅的一部分

strip-ansi 和数千个其余包的保护人员正在与 Tidelift 单干,为用于构建应用程序的开源依赖项提供商业反对和保护. 节省时间、升高危险并改善代码的运行状况,同时向您所应用的依赖项的维护者领取费用 Learn more.

参考

根本罕用的办法场景就这些了, 更残缺的用法能够间接查阅文档

strip-ansi

address

获取以后机器的 IP, MAC 和 DNS 服务器。

DNS 服务器接管/etc/resolv.conf

Install

$ npm install address

Usage

Get IP 是同步的,Get MAC 当初是异步的

var address = require('address');

// default interface 'eth' on linux, 'en' on osx.
address.ip();   // '192.168.0.2'
address.ipv6(); // 'fe80::7aca:39ff:feb0:e67d'
address.mac(function (err, addr) {console.log(addr); // '78:ca:39:b0:e6:7d'
});

// local loopback
address.ip('lo'); // '127.0.0.1'

// vboxnet MAC
address.mac('vboxnet', function (err, addr) {console.log(addr); // '0a:00:27:00:00:00'
});

Get all addresses: IPv4, IPv6 and MAC

address(function (err, addrs) {console.log(addrs.ip, addrs.ipv6, addrs.mac);
  // '192.168.0.2', 'fe80::7aca:39ff:feb0:e67d', '78:ca:39:b0:e6:7d'
});

address('vboxnet', function (err, addrs) {console.log(addrs.ip, addrs.ipv6, addrs.mac);
  // '192.168.56.1', null, '0a:00:27:00:00:00'
});

Get an interface info with family

address.interface('IPv4', 'eth1');
// {address: '192.168.1.1', family: 'IPv4', mac: '78:ca:39:b0:e6:7d'}

Get DNS servers

address.dns(function (err, addrs) {console.log(addrs);
  // ['10.13.2.1', '10.13.2.6']
});

benchmark

run $ npm run benchmark

18,929 op/s » #ip
17,622 op/s » #ipv6
16,347 op/s » #mac
11,906 op/s » #dns

参考

根本罕用的办法场景就这些了, 更残缺的用法能够间接查阅文档

address

default-gateway

通过对 OS 路由接口的 exec 调用取得机器的默认网关。

  • 在 Linux 和 Android 上,ip 命令必须可用(通常由 iproute2 包提供)。
  • 在 Windows 上,wmic 必须可用。
  • 在 IBM i 上,db2util 命令必须可用(由 db2util 包提供)。
  • 在 Unix(和 macOS)上,netstat 命令必须可用。

Installation

$ npm i default-gateway

Example

const defaultGateway = require('default-gateway');

const {gateway, interface} = await defaultGateway.v4();
// gateway = '1.2.3.4', interface = 'en1'

const {gateway, interface} = await defaultGateway.v6();
// gateway = '2001:db8::1', interface = 'en2'

const {gateway, interface} = defaultGateway.v4.sync();
// gateway = '1.2.3.4', interface = 'en1'

const {gateway, interface} = defaultGateway.v6.sync();
// gateway = '2001:db8::1', interface = 'en2'

API

defaultGateway.v4()

defaultGateway.v6()

defaultGateway.v4.sync()

defaultGateway.v6.sync()

Returns: result Object

  • gateway: 默认网关的 IP 地址
  • interface: 接口的名称。在 Windows 上,这是网络适配器名称

    .v{4,6}()办法返回 Promise 而 .v{4,6}.sync() 变领会同步返回后果

网关属性将总是在胜利时定义,而接口如果不能确定,则能够为 null。所有办法都在意外状况下回绝 / 抛出。

参考

根本罕用的办法场景就这些了, 更残缺的用法能够间接查阅文档

default-gateway

joi

JavaScript 最弱小的模式描述语言和数据验证器。

Installation

npm install joi

拜访 joi.dev 门户获取教程、文档和反对

例子

const Joi = require('joi')

// 申明类型
const schema = Joi.object({a: Joi.number()
});

// 验证数据
const string = {a: '123'};
const number = {a: 123};
const boleean = {a: true};

// 验证后果
const result1 = schema.validate(string)
const result2 = schema.validate(number)
const result3 = schema.validate(boleean)
console.log(result1, result2, result3)
/* 
{value: { a: 123} } 
{value: { a: 123} } 
{value: { a: true},
  error: [Error [ValidationError]: "a" must be a number] {_original: { a: true},
    details: [[Object] ]
  }
} 
*/

Useful resources

  • Documentation and API
  • Versions status
  • Changelog
  • Project policies

参考

根本罕用的办法场景就这些了, 更残缺的用法能够间接查阅文档

joi

正文完
 0