node Util 模块
该util
模块主要设计用于支持Node.js自己的内部API的需求。但是,许多实用程序对于应用程序和模块开发人员也很有用。它可以通过以下方式访问:
const util = require('util');
util.callbackify(原始)
接受一个async
函数(或者返回一个Promise的函数),并返回一个遵循错误优先回调风格的函数,即将(err, value) => ...
回调作为最后一个参数。在回调中,第一个参数将是拒绝原因(或者null
如果Promise已解决),第二个参数将是已解析的值。
const util = require('util'); async function fn() {
return 'hello world';
}
const callbackFunction = util.callbackify(fn); callbackFunction((err, ret) => {
if (err) throw err;
console.log(ret);
});
将打印:
hello world
注意:
回调是异步执行的,并且会有一个有限的堆栈跟踪。如果回调抛出,进程将发出一个
'uncaughtException'
事件,如果不处理则退出。由于
null
具有特殊含义作为回调的第一个参数,因此如果包装函数拒绝Promise
带有虚假值的a作为原因,则该值将被包装在一个Error
存储在名为的字段中的原始值中reason
。
util.debuglog
该util.debuglog()
方法用于创建一个函数,该函数stderr
根据NODE_DEBUG
环境变量的存在有条件地写入调试消息。如果该section
名称出现在该环境变量的值内,则返回的函数的操作类似于 console.error()
。如果不是,则返回的函数是空操作。
const util = require('util');
const debuglog = util.debuglog('foo'); debuglog('hello from foo [%d]', 123);
如果该程序NODE_DEBUG=foo
在环境中运行,那么它将输出如下所示的内容:
FOO 3245: hello from foo [123]
util.deprecate(函数,字符串)
该util.deprecate()
方法将给定function
或类包装为标记为已弃用的方式。
util.format(格式[,... args])
该util.format()
方法返回格式化的字符串,使用第一个参数作为一个类似printf
的格式。
第一个参数是一个包含零个或多个占位符标记的字符串。每个占位符令牌均由来自相应参数的转换后的值替换。支持的占位符是:
%s
- 字符串。%d
- 数字(整数或浮点值)。%i
- 整数。%f
- 浮点值。%j
- JSON。'[Circular]'
如果参数包含循环引用,则替换为字符串。%o
- 对象。具有通用JavaScript对象格式的对象的字符串表示形式。类似于util.inspect()
选项{ showHidden: true, depth: 4, showProxy: true }
。这将显示完整的对象,包括不可枚举的符号和属性。%O
- 对象。具有通用JavaScript对象格式的对象的字符串表示形式。类似于util.inspect()
没有选项。这将显示不包含不可枚举符号和属性的完整对象。%%
- 单个百分号('%'
)。这不会消耗一个参数。
如果占位符没有相应的参数,则占位符不会被替换。
util.format('%s:%s', 'foo');
// Returns: 'foo:%s'
如果传递给util.format()
方法的参数比占位符的数量多,则额外的参数将被强制转换为字符串,然后连接到返回的字符串,每个字符串都由空格分隔。过度的参数 typeof
是'object'
或'symbol'
(除外null
)将被转换util.inspect()
。
util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
如果第一个参数不是一个字符串,则util.format()
返回一个字符串,它是由空格分隔的所有参数的连接。每个参数都被转换为一个字符串util.inspect()
util.format(1, 2, 3); // '1 2 3'
如果只传递一个参数util.format()
,则返回原样而没有任何格式。
util.format('%% %s'); // '%% %s'
node Util 模块的更多相关文章
- 夺命雷公狗---node.js---8url模块和util模块
我们先到手册上看看: 上面很明显就写着返回一个对象. 再来看看util模块, 废话不哦多说,先上一点代码: /** * Created by leigood on 2016/8/13. */ var ...
- 深入浅出node(2) 模块机制
这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ...
- Node.js模块
每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js).JSON文本文件(.json)和二进制模块文件(.node). mymodul.js function Hell ...
- step by step 之餐饮管理系统五(Util模块)------附上篇日志模块源码
这段时间一直在修改日志模块,现在基本上写好了,也把注释什么的都加上了,昨天邮件发送给mark的园友一直报失败,老是退回来,真是报歉,如下图所示:
- 如何发布一个自定义Node.js模块到NPM(详细步骤)
咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...
- 编写原生Node.js模块
导语:当Javascript的性能需要优化,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...
- 编写原生的Node.js模块
导语:当Javascript的性能遭遇瓶颈,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...
- Node.js 模块
稳定性: 5 - 锁定 Node 有简单的模块加载系统.在 Node 里,文件和模块是一一对应的.下面例子里,foo.js 加载同一个文件夹里的 circle.js 模块. foo.js 内容: va ...
- node基础—模块系统
模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统. 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node ...
随机推荐
- 关于WM8741对于32位音频的支持
WM8741据说是支持到32位192K,但实际上,对于32位,它只是支持I2S总线上32位数据输入,内部还是转换成24位来做滤波处理的,DA转换的精度是达不到32位的.不过它在转换到24位的时候有一个 ...
- SQL Sever删除外键
declare @sql varchar(max), @tab_name varchar(128), @fk_name varchar(128);declare c cursor forselect ...
- 使用for循环添加点击事件时,获取i值的方法
比如页面上有一个ul,数个li,现在给li添加点击事件. var li = document.getElementsByTagName("li"); for(var i = 0; ...
- 实现多层抽屉菜单,点击其中一项会动画打开该抽屉--第三方开源--MultiCardMenu
下载地址:https://github.com/wujingchao/MultiCardMenu <net.wujingchao.android.view.MultiCardMenu xmlns ...
- Linux-监控与安全运维之Nagios
1. Nagios 简介是一个开源软件,可以监控网络设备网络流量.Linux/windows主机状态,甚至可以监控打印机它可以运行在Linux上或windows上基于浏览器的web界面方便运维人员查看 ...
- KVM- 存储池配置
1.创建基于文件夹的存储池(目录) [root@kvm_1 ~]# mkdir -p /data/vmfs 2.定义存储池与其目录 [root@kvm_1 ~]# virsh pool-define- ...
- Mat ,IplImage, CvMat 之间的转换的总结
在新版本与旧版本之间纠结,到底是用Mat,还是Iplimage? Mat 侧重于数据计算,而Iplimage注重于图像的处理. 因此,应根据具体需要灵活使用,那个好用用哪个,只要在两者之间进行转换即可 ...
- 总结的一些MySQL数据库面试题
1.sql语句应该考虑哪些安全性? 1.防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语句绑定变量. 2.最小权限原则,特别是不要用root账户,为不同的类型的动作或者组建使用不同的账 ...
- HihoCoder1139 二分·二分答案
描述 在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后终于准备出海捞船和敌军交战了.在这个游戏里面,海域是N个战略点(编号1..N)组成,如下图所示其中红 ...
- Shell脚本备份Mongodb数据库
目录 环境还原 环境创建 编写shell脚本 准备文件 创建shell脚本 执行shell脚本 进阶版 感谢 诚邀访问我的个人博客:我在马路边 更好的阅读体验点击查看原文:Shell脚本备份Mongo ...