首頁>技術>

在本文中,我將介紹3個非常有用的Node.js軟體包,因為我在日常開發中經常用到它們,我想這些對你也許很有幫助。

1. Chalk:在終端中設定輸出樣式

在開發新的Node.js應用程式期間 console.log 必不可少,不管我們用它來輸出錯誤、系統資料還是函式和co的輸出。但是,這確實會造成一些混亂,因為預設情況下 console.log 函式在終端中輸出純白色文字。

Chalk改變了這一點。

用 npm install chalk 安裝Chalk就可以了。

這是一個程式碼示例,下面是我的終端的實際情況。

const chalk = require(‘chalk’)// just blue fontconsole.log(chalk.blue(‘this is lit’))// blue & bold font, red background (bg = background)console.log(chalk.blue.bgRed.bold(‘Blue & Bold on Red’))// blue font, red backgroundconsole.log(chalk.blue.bgRed(‘Regular Blue on Red’))// combining multiple font colorsconsole.log(chalk.blue(‘Blue’) + ‘ Default’ + chalk.red(‘ Red’))// Underlining textconsole.log(chalk.red(‘There is an ‘, chalk.underline(‘Error’)))// Using RGB-colorsconsole.log(chalk.rgb(127, 255, 0).bold(‘Custom green’))

輸出:

2. Morgan — 記錄HTTP請求中的所有重要資訊

同樣,這在應用程式的開發中特別有用。因為HTTP請求是數字世界的心跳,所以完全控制對應用程式中影響它們的所有內容的重要性如此重要。

Morgan提供了有關此的重要資訊。

像往常一樣,通過 npm install morgan 安裝,在morgan中,我們可以定義我們想要獲得的關於請求的資訊。

正如在描述的文件中所述,只需將其傳遞到morgan中介軟體中,因此我們將在下面的程式碼示例中使用它。

const express = require(‘express’)const morgan = require(‘morgan’)const app = express()app.use(morgan( ‘:method :url :status :response-time ms’))app.get(‘/’, function(req, res) {  res.send(‘hello, world!’)})app.listen(8080)

因此,我們希望獲得有關傳入HTTP請求的以下詳細資訊:方法,請求的URL,請求的狀態以及響應所花費的時間。

在瀏覽器中開啟網站時,執行此程式碼應導致以下輸出:

當我們在瀏覽器中開啟頁面時,它總是向伺服器發出GET-Request請求,因為我們請求了 /,morgan也會顯示這個,以及我們的“hello, world!”站點被成功交付——這意味著狀態碼200。整個執行過程大約需要2.3毫秒,這相當快。

但我們不僅要求我們的網站,而且瀏覽器也總是要求一個favicon,找不到——錯誤狀態404。

讓我們來衡量一個實驗:我們更改程式碼,使每個響應之前有200毫秒的停頓。以下是程式碼中的更改:

app.get(‘/’, function(req, res) {  setTimeout(function() {    res.send(‘hello, world!’)  }, 200)})

現在,當我們再次在瀏覽器中請求頁面時,morgan將記錄此內容:

現在,響應花費了200多個毫秒——就像我們想要的那樣。但最後,頁面再次成功交付,除了favicon,我們現在還沒有,而且只用了幾個MS,因為我們只延遲了對 / 路由的請求。

3. Cheerio:使用類似jQuery的語法處理伺服器上已經存在的DOM

特別是當我們不提供靜態HTML檔案而是動態網站時,Cheerio非常實用。我們可以在瀏覽器的請求和響應之間直接修改請求的HTML程式碼,而客戶端不會知道。由於類似jQuery的語法,這特別容易。當然,你也可以使用Cheerio做爬蟲和其他許多操作。

使用 npm install cheerio 安裝。通過Cheerio,我們可以獲得有關HTML結構和內容的資訊:

const template = `  <div id=”main”>    <h1 id=”message”>Welcome on our site</h1>  </div>`const $ = cheerio.load(template)console.log($(‘h1’).text()) // Welcome on our site

將HTML新增到現有模板:

let template = `  <div id=”main”>    <h1 id=”message”>Welcome on our site</h1>  </div>`const $ = cheerio.load(template)$(‘div’).append(‘<p class=”plum”>Paragraph</p>’)template = $.html()

現在的模板:

<div id="main">   <h1 id="message">Welcome on our site</h1>     <p class="plum">Paragraph</p></div>

但是Cheerio最常用的一種情況可能是隨後將內容寫入模板:

let template = `  <div id=”main”>    <h1 id=”message”></h1>  </div>`const $ = cheerio.load(template)$(‘h1’).append(‘New welcome message!’)template = $.html()

現在的模板:

<div id=”main”>   <h1 id=”message”>New welcome message!</h1> </div>

而且,我們可以使用Cheerio做更多的事情。只需檢視文件即可!

全文完,這個三個Node.js軟體包你都有使用過嗎?

推薦狼叔的大作

作者簡介:Web前端工程師,全棧開發工程師、持續學習者。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 【SpringCloud實戰】一次開發中使用Feign新增動態Header問題思考