摘要:有沒有優(yōu)雅的方式呢今天我們了解的庫就是專門來控制輸出棄用功能警告日志的。聲明棄用函數(shù)使用包裹一層我們要廢棄的函數(shù),那么這個(gè)函數(shù)在被第一次調(diào)用時(shí),就會(huì)自動(dòng)輸出警告信息。聲明棄用屬性使用聲明對(duì)象指定的屬性被棄用。
NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。
Node.js 高效率編程的基礎(chǔ)是大量的NPM開源庫,開發(fā)應(yīng)用時(shí),找特定領(lǐng)域的NPM庫要比自己從頭寫代碼要高效得多。如果某個(gè)領(lǐng)域沒有對(duì)應(yīng)的公共NPM庫,那么我們可以自己編寫一個(gè)NPM庫,并發(fā)布到NPM倉庫,供大家和自己日后使用。這才是Node.js正確的編碼姿勢(shì)。
如果我們發(fā)布了NPM庫供大家使用,那么,我們的NPM庫的接口就不能隨便變化,以免給其他的使用者帶來麻煩。如果某些接口不得不調(diào)整,最好提前幾個(gè)版本告訴大家某些接口要棄用,以給其他使用者一些整改的時(shí)間。
最好的通知方式,就是在你的代碼執(zhí)行時(shí),如果某些將要廢棄的接口被調(diào)用,那就在控制臺(tái)中輸出警告日志,這樣,依賴你的庫的其他開發(fā)者就能關(guān)注到你的通知。
但是要注意,只在接口第一次被調(diào)用的時(shí)候發(fā)出通知,否則,很有可能給項(xiàng)目的控制臺(tái)帶來災(zāi)難,因?yàn)槟愕牡讓訋焯峁┑慕涌跁?huì)被多次調(diào)用。我們可以增加哨兵變量來控制一個(gè)廢棄接口只輸出一次警告。但是,隨著你的公共庫的規(guī)模變大,有可能會(huì)有很多接口棄用警告,那么就會(huì)到處充斥著和主體邏輯無關(guān)的哨兵變量和判斷。有沒有優(yōu)雅的方式呢?
depd今天我們了解的depd庫就是專門來控制輸出棄用功能警告日志的。
最簡用法:const depd = require("depd"); const deprecate = depd("my-module"); deprecate("this function deprecated");
我們可以在任何地方使用 deprecate() 輸出我們的日志,同樣的日志只會(huì)輸出一次,因?yàn)?depd 已經(jīng)內(nèi)置了哨兵變量的管理。
聲明棄用函數(shù)const depd = require("depd"); const deprecate = depd("my-cool-module"); exports.oldfunction = deprecate.function(function oldfunction () { // all calls to function are deprecated });
使用 deprecate.function() 包裹一層我們要廢棄的函數(shù),那么這個(gè)函數(shù)在被第一次調(diào)用時(shí),就會(huì)自動(dòng)輸出警告信息。
聲明棄用屬性const depd = require("depd"); const deprecate = depd("my-cool-module"); exports.oldprop = "something"; // message automatically derives from property name deprecate.property(exports, "oldprop");
使用 deprecate.property() 聲明對(duì)象指定的屬性被棄用。
參考資料https://github.com/dougwilson...
歡迎關(guān)注公眾號(hào):梁興臣每天了解一個(gè)NPM庫,一年后成為Node.js高手
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90715.html
摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。比如需要滿足那些屬性,每個(gè)屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗(yàn)證。在對(duì)數(shù)據(jù)的模式驗(yàn)證領(lǐng)域有專門的標(biāo)準(zhǔn),叫做。就是按照標(biāo)準(zhǔn)聲明一個(gè)模式對(duì)象,然后使用模式驗(yàn)證工具去驗(yàn)證目標(biāo)數(shù)據(jù)。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫?!?在NPM酷庫041中,我們學(xué)習(xí)了如何用validator庫來驗(yàn)證字符串是否是Email、URL等,在開發(fā)中,除了字符串,...
摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。在酷庫中,我們了解到了數(shù)據(jù)模式驗(yàn)證,以及庫。是語義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫,所謂語義化,是指其方法名能夠明確表達(dá)其含義。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫?!?在NPM酷庫042中,我們了解到了JSON Schema數(shù)據(jù)模式驗(yàn)證,以及ajv庫。今天我們來學(xué)習(xí)另一個(gè)對(duì)象數(shù)據(jù)驗(yàn)證的庫joi。 joi joi 是語義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫,所謂語義...
摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。是一個(gè)格式的擴(kuò)展,目的是能夠讓人類更容易讀寫數(shù)據(jù)文件。只是一個(gè)第三方的庫,并非格式的繼任者。相對(duì)于,有如下各個(gè)方面優(yōu)勢(shì)。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫?!?JSON是JS中數(shù)據(jù)交換時(shí)最常用的數(shù)據(jù)格式,其序列話和反序列化性能非常好,但是其語法卻比較嚴(yán)格,比如以下是一個(gè)合法的JS聲明,卻不是一個(gè)合法的JSON: { foo: bar } J...
摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。昨天,我們學(xué)習(xí)了一個(gè)新庫,用于模式匹配目錄文件。今天,我們要了解的,是基于,并進(jìn)一步得到了增強(qiáng)了功能。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 昨天,我們學(xué)習(xí)了一個(gè)新庫 glob,用于模式匹配目錄文件。今天,我們要了解的globby,是基于 glob,并進(jìn)一步得到了增強(qiáng)了功能。 globby 特性 相對(duì)于 glob,globby有以下增強(qiáng)功能 ...
摘要:昨天,我們認(rèn)識(shí)了庫的用法,用來控制輸出調(diào)試日志。今天我們?cè)倭私庖粋€(gè)日志記錄的庫,一個(gè)多路傳輸?shù)娜罩居涗泿臁K^多路傳輸,是指,你可以自定義多個(gè)日志儲(chǔ)存驅(qū)動(dòng),比如,將日志輸出到終端的同時(shí),將重要日志記錄到文件中,甚至寫到數(shù)據(jù)庫中。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 昨天,我們認(rèn)識(shí)了debug庫的用法,用來控制輸出調(diào)試日志。但是,debug的特性適合于開發(fā)調(diào)試,并不適合程序記...
閱讀 2396·2021-09-30 09:47
閱讀 2978·2019-08-30 11:05
閱讀 2559·2019-08-29 17:20
閱讀 1942·2019-08-29 13:01
閱讀 1752·2019-08-26 13:39
閱讀 1310·2019-08-26 13:26
閱讀 3246·2019-08-23 18:40
閱讀 1865·2019-08-23 17:09