摘要:有沒有優雅的方式呢今天我們了解的庫就是專門來控制輸出棄用功能警告日志的。聲明棄用函數使用包裹一層我們要廢棄的函數,那么這個函數在被第一次調用時,就會自動輸出警告信息。聲明棄用屬性使用聲明對象指定的屬性被棄用。
NPM酷庫,每天兩分鐘,了解一個流行NPM庫。
Node.js 高效率編程的基礎是大量的NPM開源庫,開發應用時,找特定領域的NPM庫要比自己從頭寫代碼要高效得多。如果某個領域沒有對應的公共NPM庫,那么我們可以自己編寫一個NPM庫,并發布到NPM倉庫,供大家和自己日后使用。這才是Node.js正確的編碼姿勢。
如果我們發布了NPM庫供大家使用,那么,我們的NPM庫的接口就不能隨便變化,以免給其他的使用者帶來麻煩。如果某些接口不得不調整,最好提前幾個版本告訴大家某些接口要棄用,以給其他使用者一些整改的時間。
最好的通知方式,就是在你的代碼執行時,如果某些將要廢棄的接口被調用,那就在控制臺中輸出警告日志,這樣,依賴你的庫的其他開發者就能關注到你的通知。
但是要注意,只在接口第一次被調用的時候發出通知,否則,很有可能給項目的控制臺帶來災難,因為你的底層庫提供的接口會被多次調用。我們可以增加哨兵變量來控制一個廢棄接口只輸出一次警告。但是,隨著你的公共庫的規模變大,有可能會有很多接口棄用警告,那么就會到處充斥著和主體邏輯無關的哨兵變量和判斷。有沒有優雅的方式呢?
depd今天我們了解的depd庫就是專門來控制輸出棄用功能警告日志的。
最簡用法:const depd = require("depd"); const deprecate = depd("my-module"); deprecate("this function deprecated");
我們可以在任何地方使用 deprecate() 輸出我們的日志,同樣的日志只會輸出一次,因為 depd 已經內置了哨兵變量的管理。
聲明棄用函數const depd = require("depd"); const deprecate = depd("my-cool-module"); exports.oldfunction = deprecate.function(function oldfunction () { // all calls to function are deprecated });
使用 deprecate.function() 包裹一層我們要廢棄的函數,那么這個函數在被第一次調用時,就會自動輸出警告信息。
聲明棄用屬性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() 聲明對象指定的屬性被棄用。
參考資料https://github.com/dougwilson...
歡迎關注公眾號:梁興臣每天了解一個NPM庫,一年后成為Node.js高手
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90715.html
摘要:酷庫,每天兩分鐘,了解一個流行庫。比如需要滿足那些屬性,每個屬性都是什么類型的,這些條件稱之為數據模式驗證。在對數據的模式驗證領域有專門的標準,叫做。就是按照標準聲明一個模式對象,然后使用模式驗證工具去驗證目標數據。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫041中,我們學習了如何用validator庫來驗證字符串是否是Email、URL等,在開發中,除了字符串,...
摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了數據模式驗證,以及庫。是語義化的對象數據模式驗證庫,所謂語義化,是指其方法名能夠明確表達其含義。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫042中,我們了解到了JSON Schema數據模式驗證,以及ajv庫。今天我們來學習另一個對象數據驗證的庫joi。 joi joi 是語義化的對象數據模式驗證庫,所謂語義...
摘要:酷庫,每天兩分鐘,了解一個流行庫。是一個格式的擴展,目的是能夠讓人類更容易讀寫數據文件。只是一個第三方的庫,并非格式的繼任者。相對于,有如下各個方面優勢。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· JSON是JS中數據交換時最常用的數據格式,其序列話和反序列化性能非常好,但是其語法卻比較嚴格,比如以下是一個合法的JS聲明,卻不是一個合法的JSON: { foo: bar } J...
摘要:酷庫,每天兩分鐘,了解一個流行庫。昨天,我們學習了一個新庫,用于模式匹配目錄文件。今天,我們要了解的,是基于,并進一步得到了增強了功能。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 昨天,我們學習了一個新庫 glob,用于模式匹配目錄文件。今天,我們要了解的globby,是基于 glob,并進一步得到了增強了功能。 globby 特性 相對于 glob,globby有以下增強功能 ...
摘要:昨天,我們認識了庫的用法,用來控制輸出調試日志。今天我們再了解一個日志記錄的庫,一個多路傳輸的日志記錄庫。所謂多路傳輸,是指,你可以自定義多個日志儲存驅動,比如,將日志輸出到終端的同時,將重要日志記錄到文件中,甚至寫到數據庫中。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 昨天,我們認識了debug庫的用法,用來控制輸出調試日志。但是,debug的特性適合于開發調試,并不適合程序記...
閱讀 2330·2021-09-30 09:47
閱讀 2949·2019-08-30 11:05
閱讀 2526·2019-08-29 17:20
閱讀 1912·2019-08-29 13:01
閱讀 1721·2019-08-26 13:39
閱讀 1221·2019-08-26 13:26
閱讀 3205·2019-08-23 18:40
閱讀 1810·2019-08-23 17:09