全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

Process模塊怎樣獲取終端的輸入數(shù)據(jù)?

更新時(shí)間:2022-12-21 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

客戶(hù)端與服務(wù)器的雙向通信是通過(guò)代碼實(shí)現(xiàn)的,因?yàn)槲覀儫o(wú)法直接在終端上進(jìn)行信息輸人,例如在客戶(hù)端終端輸入信息發(fā)送到服務(wù)器,這樣的功能就需要依賴(lài) Process 模塊來(lái)完成。對(duì)于每一個(gè)終端來(lái)說(shuō),都是一個(gè)標(biāo)準(zhǔn)輸入與標(biāo)準(zhǔn)輸出的一個(gè)接口而已,在 Process 模塊中提供了獲取終端輸入數(shù)據(jù)的方法,下面進(jìn)行詳細(xì)介紹。

Process模塊是一個(gè)無(wú)須使用 require0就可以從Nodejs 應(yīng)用程序進(jìn)行訪問(wèn)的全局對(duì)象,在 Node.js 中可以通過(guò)如下方式來(lái)獲取進(jìn)程中輸入的數(shù)據(jù),也就是終端的輸入數(shù)據(jù)。

process.stdin.on('data',function (data) {
  console.log(data.toString().trim());
});

在上述代碼中,通過(guò)監(jiān)聽(tīng)process.stdin 對(duì)象的data事件,從data事件的回調(diào)函數(shù)中獲取終端輸人的數(shù)據(jù),由于輸入消息后需要按[Enter] 鍵,系統(tǒng)會(huì)將這個(gè)動(dòng)作識(shí)別為空格所以使用trim0來(lái)去掉這個(gè)空格。

下面通過(guò)一個(gè)案例在終端進(jìn)行輸入演示。在chapter06 目錄中創(chuàng)建demo6-6.js,并且在該文件中添加如下代碼。

/**
 *測(cè)試獲取終端輸入
 */
// 通過(guò)下面的方式就可以獲取用戶(hù)的輸入
process.stdin.on('data',function (data){
  console.log(data.toString().trim());
});

打開(kāi)終端,執(zhí)行demo6-6.is,結(jié)果如圖所示。
1671615926485_demo6.jpg

demo6-6js執(zhí)行結(jié)果

在圖中第二行出現(xiàn)閃爍的光標(biāo),這時(shí)可以在終端輸人內(nèi)容,例如輸入“123456”后按[Enter]鍵,如下所示。

1671615919910_命令提示符、.jpg
圖 獲取終端輸入

在上圖中,第一個(gè)“123456”是使用鍵盤(pán)輸入的,第二個(gè)“123456”是按[Enter]鍵后獲取到的輸入信息,被輸出到了終端。


分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!