溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

3個常用的nodejs軟件包

發(fā)布時間:2020-10-29 09:49:53 來源:億速云 閱讀:225 作者:小新 欄目:web開發(fā)

小編給大家分享一下3個常用的nodejs軟件包,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

Node.js已成為IT不可或缺的一部分。有了自己的軟件包管理器NPM,Node可以發(fā)現(xiàn)許多非常有用的庫和框架。

在本文中,我將向您展示一些使用Node.js構(gòu)建復(fù)雜動態(tài)應(yīng)用程序的可能性。

1、Chalk:在終端中設(shè)置輸出樣式

在開發(fā)新的Node.js應(yīng)用程序期間 console.log 必不可少,不管我們用它來輸出錯誤、系統(tǒng)數(shù)據(jù)還是函數(shù)和co的輸出。但是,這確實會造成一些混亂,因為默認情況下 console.log 函數(shù)在終端中輸出純白色文本。

Chalk改變了這一點。

只需像往常一樣從https://www.npmjs.com/package/chalk用 npm install chalk 安裝Chalk就可以了。

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

const chalk = require(‘chalk’)
// just blue font
console.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 background
console.log(chalk.blue.bgRed(‘Regular Blue on Red’))
// combining multiple font colors
console.log(chalk.blue(‘Blue’) + ‘ Default’ + chalk.red(‘ Red’))
// Underlining text
console.log(chalk.red(‘There is an ‘, chalk.underline(‘Error’)))
// Using RGB-colors
console.log(chalk.rgb(127, 255, 0).bold(‘Custom green’))

輸出:

3個常用的nodejs軟件包

2、Morgan — 記錄HTTP請求中的所有重要信息

同樣,這在應(yīng)用程序的開發(fā)中特別有用。因為HTTP請求是數(shù)字世界的心跳,所以完全控制對應(yīng)用程序中影響它們的所有內(nèi)容的重要性如此重要。

Morgan提供了有關(guān)此的重要信息。

像往常一樣,通過 npm install morgan 從 https://www.npmjs.com/package/morgan  獲取它,在morgan中,我們可以定義我們想要獲得的關(guān)于請求的信息。

正如在描述的文檔中所述,只需將其傳遞到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)

因此,我們希望獲得有關(guān)傳入HTTP請求的以下詳細信息:方法,請求的URL,請求的狀態(tài)以及響應(yīng)所花費的時間。

在瀏覽器中打開網(wǎng)站時,運行此代碼應(yīng)導(dǎo)致以下輸出:

3個常用的nodejs軟件包

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

但我們不僅要求我們的網(wǎng)站,而且瀏覽器也總是要求一個favicon,找不到——錯誤狀態(tài)404。

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

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

現(xiàn)在,當我們再次在瀏覽器中請求頁面時,morgan將記錄此內(nèi)容:

3個常用的nodejs軟件包

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

3、Cheerio:使用類似jQuery的語法處理服務(wù)器上已經(jīng)存在的DOM

特別是當我們不提供靜態(tài)HTML文件而是動態(tài)網(wǎng)站時,Cheerio非常實用。我們可以在瀏覽器的請求和響應(yīng)之間直接修改請求的HTML代碼,而客戶端不會知道。由于類似jQuery的語法,這特別容易。當然,您也可以使用Cheerio做爬蟲和其他許多操作。

使用 npm install cheerio 從 https://www.npmjs.com/package/cheerio  安裝。通過Cheerio,我們可以獲得有關(guān)HTML結(jié)構(gòu)和內(nèi)容的信息:

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

將HTML添加到現(xiàn)有模板:

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

現(xiàn)在的模板:

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

但是Cheerio最常用的一種情況可能是隨后將內(nèi)容寫入模板:

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

現(xiàn)在的模板:

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

看完了這篇文章,相信你對3個常用的nodejs軟件包有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI