日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

nodejs教程

Node.js 實用工具

閱讀 (2202)

實用工具

穩定性: 4 - 鎖定

這些函數都在'util' 模塊里。使用 require('util') 來訪問他們。

util 模塊原先設計的初衷是用來支持 node 的內部 API 的。這里的很多的函數對你的程序來說都非常有用。如果你覺得這些函數不能滿足你的要求,那你可以寫自己的工具函數。我們不希望 'util' 模塊里添加對于 node 內部函數無用的擴展。

util.debuglog(section)

  • section {字符串} 被調試的程序節點部分
  • Returns: {Function} 日志函數

用來創建一個有條件的寫到 stderr 的函數(基于 NODE_DEBUG 環境變量)。如果 section 出現在環境變量里,返回函數將會和 console.error() 類似。否則,返回一個空函數。

例如:

javascript
var debuglog = util.debuglog('foo');

var bar = 123;
debuglog('hello from foo [%d]', bar);

如果這個程序以 NODE_DEBUG=foo 的環境運行,將會輸出:

FOO 3245: hello from foo [123]

3245 是進程 ID。如果沒有運行在這個環境變量里,將不會打印任何東西。

可以用逗號切割多個 NODE_DEBUG 環境變量。例如:NODE_DEBUG=fs,net,tls

util.format(format[, ...])

使用第一個參數返回一個格式化的字符串,類似 printf

第一個參數是字符串,它包含 0 或更多的占位符。每個占位符被替換成想要參數轉換的值。支持的占位符包括:

  • %s - 字符串.
  • %d - 數字 (整數和浮點數).
  • %j - JSON. 如果參數包含循環引用,將會用字符串替換R
  • %% - 單獨一個百分號 ('%')。 不會消耗一個參數。

如果占位符沒有包含一個相應的參數,占位符不會被替換。

util.format('%s:%s', 'foo'); // 'foo:%s'

如果參數超過占位符,多余的參數將會用 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.log(string)

stdout 輸出并帶有時間戳.

require('util').log('Timestamped message.');

util.inspect(object[, options])

返回一個對象的字符串表現形式,在代碼調試的時候非常有用。

通過加入一些可選選項,來改變對象的格式化輸出形式:

  • showHidden - 如果為 true,將會顯示對象的不可枚舉屬性。默認為 false

  • depth - 告訴 inspect 格式化對象時遞歸多少次。這在格式化大且復雜對象時非常有用。默認為 2。如果想無窮遞歸的話,傳 null

  • colors - 如果為 true, 輸出內容將會格式化為有顏色的代碼。默認為 false, 顏色可以自定義,參見下文。

  • customInspect - 如果為 false, 那么定義在被檢查對象上的inspect(depth, opts) 方法將不會被調用。 默認為true。

檢查 util 對象上所有屬性的例子:

var util = require('util');

console.log(util.inspect(util, { showHidden: true, depth: null }));

當被調用的時候,參數值可以提供自己的自定義inspect(depth, opts)方法。該方法會接收當前的遞歸檢查深度,以及傳入util.inspect()的其他參數。

自定義 util.inspect 顏色

util.inspect 通過 util.inspect.stylesutil.inspect.colors 對象,自定義全局的輸出顏色,

util.inspect.stylesutil.inspect.colors 組成風格顏色的一對映射。

高亮風格和他們的默認值:

  • 數字 (黃色)
  • boolean (黃色)
  • 字符串 (綠色)
  • date (洋紅)
  • regexp (紅色)
  • null (粗體)
  • undefined (斜體)
  • special - (青綠色)
  • name (內部用,不是風格)

預定義的顏色為: white, 斜體, black, blue, cyan,綠色, 洋紅, 紅色黃色.以及 粗體, 斜體, 下劃線反選 風格.

對象上德自定義 inspect() 函數

對象也能自定義 inspect(depth) 函數, 當使用util.inspect()檢查該對象的時候,將會執行對象自定義的檢查方法:

var util = require('util');

var obj = { name: 'nate' };
obj.inspect = function(depth) {
  return '{' + this.name + '}';
};

util.inspect(obj);
  // "{nate}"

你可以返回另外一個對象,返回的字符串會根據返回的對象格式化。這和 JSON.stringify() 的工作流程類似。You may also return another Object entirely, and the returned 字符串 will beformatted according to the returned Object. This is similar to howJSON.stringify() works:

var obj = { foo: 'this will not show up in the inspect() output' };
obj.inspect = function(depth) {
  return { bar: 'baz' };
};

util.inspect(obj);
  // "{ bar: 'baz' }"

util.isArray(object)

Array.isArray 的內部別名。

如果參數 "object" 是數組,返回 true ,否則返回 false

var util = require('util');

util.isArray([])
  // true
util.isArray(new Array)
  // true
util.isArray({})
  // false

util.isRegExp(object)

如果參數 "object" 是 RegExp 返回 true ,否則返回 false

var util = require('util');

util.isRegExp(/some regexp/)
  // true
util.isRegExp(new RegExp('another regexp'))
  // true
util.isRegExp({})
  // false

util.isDate(object)

如果參數 "object" 是 Date 返回 true ,否則返回 false

var util = require('util');

util.isDate(new Date())
  // true
util.isDate(Date())
  // false (without 'new' returns a String)
util.isDate({})
  // false

util.isError(object)

如果參數 "object" 是 Error 返回 true ,否則返回 false

var util = require('util');

util.isError(new Error())
  // true
util.isError(new TypeError())
  // true
util.isError({ name: 'Error', message: 'an error occurred' })
  // false

util.inherits(constructor, superConstructor)

從一個構造函數constructor繼承原型方法到另一個。構造函數的原型將被設置為一個新的從超類(superConstructor)創建的對象。

通過 constructor.super_ 屬性可以訪問 superConstructor

var util = require("util");
var events = require("events");

function MyStream() {
    events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);

MyStream.prototype.write = function(data) {
    this.emit("data", data);
}

var stream = new MyStream();

console.log(stream instanceof events.EventEmitter); // true
console.log(MyStream.super_ === events.EventEmitter); // true

stream.on("data", function(data) {
    console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"

util.deprecate(function, string)

標明該方法不要再使用。

exports.puts = exports.deprecate(function() {
  for (var i = 0, len = arguments.length; i < len; ++i) {
    process.stdout.write(arguments[i] + '\n');
  }
}, 'util.puts: Use console.log instead')

返回一個修改過的函數,默認情況下僅警告一次。如果設置了 --no-deprecation 該函數不做任何事。如果設置了--throw-deprecation,如果使用了該 API 應用將會拋出異常

util.debug(string)

穩定性: 0 - 拋棄: 使用 console.error() 替換。

console.error 的前身。

util.error([...])

穩定性: 0 - 拋棄: 使用 console.error() 替換。

console.error 的前身。

util.puts([...])

穩定性: 0 - 拋棄:使用 console.log() 替換。

console.log 的前身。

util.print([...])

穩定性: 0 - 拋棄: 使用 console.log() 替換。

console.log 的前身。

util.pump(readableStream, writableStream[, callback])

穩定性: 0 - 拋棄: Use readableStream.pipe(writableStream)

stream.pipe 的前身。

關閉
程序員人生
主站蜘蛛池模板: 国产99久久久欧美黑人 | 日韩精品久久久久久 | 国产精品欧美一区二区三区不卡 | 国产一区欧美 | 最新中文字幕免费视频 | 黄色激情视频网站 | 日韩精品免费看 | 精品视频免费 | 欧美日韩在线播放 | 国产精品久久久久久福利一牛影视 | 国产一级色片 | 成人在线视频播放 | 欧美成人手机在线 | 中国性猛交xxxx乱大交3 | 蜜乳av另类精品一区二区 | 久久99国产精品久久99果冻传媒 | 91麻豆精品一区二区三区 | av在线免费播放 | 国产91精品久久久久久久网曝门 | 国产精品久久久久久久久免费蜜臀 | 99久久99久国产黄毛片 | 一级二级三级黄色片 | 成人免费视频播放器 | 九九九九精品九九九九 | 99久久精品国产麻豆演员表 | 国产片网站 | 成人欧美一区二区三区在线湿哒哒 | 欧美成人a | 日本久久免费 | 可以看黄色的网站 | 国产日韩视频在线 | 伊人网伊人网 | 国产精品视频一区二区三区四区五区 | 精品香蕉99久久久久网站 | 成人动漫一区二区三区 | 不卡av在线播放 | 中文字幕亚洲精品 | 成人欧美一区二区三区视频xxx | 在线看日韩 | 国产一区二区在线免费观看 | 国产九九热 |