欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js中readline模塊實現(xiàn)終端輸入

 更新時間:2022年02月18日 15:14:59   作者:橘貓吃不胖~  
本文主要介紹了Node.js中readline模塊實現(xiàn)終端輸入,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1 概述

readline是Node.js里實現(xiàn)標準輸入輸出的封裝好的模塊,通過這個模塊我們可以以逐行的方式讀取數(shù)據(jù)流。使用require("readline")可以引用模塊。

使用readline步驟:
1、引入:require('readline')
2、創(chuàng)建readline對象(接口)
3、調(diào)用接口的相關方法
4、監(jiān)聽和處理readline事件

示例代碼:

// 引入readline模塊
const readline = require("readline");

// 創(chuàng)建readline接口實例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

//調(diào)用接口方法
r1.question("你叫什么名字\t", function (answer) {
    console.log("我的名字是:", answer);
    // 不加close,則不會結(jié)束
    r1.close();
})

//close事件監(jiān)聽
r1.on("close", function () {
    // 結(jié)束程序
    process.exit(0);
})

在這里插入圖片描述

2 readline的使用

第一步:createInterface創(chuàng)建了一個接口實例
第二步:調(diào)用相關方法,如question方法輸入
第三步:監(jiān)聽readline的close事件

注意:
1、在createInterface里,需要傳入標準輸入輸出作為數(shù)據(jù)的輸入輸出流
2、在question方法的回調(diào)函數(shù)里,可以獲取到用戶的輸入并進行處理,同時進行了close操作來結(jié)束程序,否則程序不會結(jié)束
3、在close事件的監(jiān)聽里,執(zhí)行了process.exit(0)來使程序退出的操作,因為readline模塊只要一開始獲取用戶輸入就不會結(jié)束,必須使用這種直接的方式來結(jié)束程序

3 示例1:輸入輸出

示例代碼:

// 引入readline模塊
let readline = require("readline");

// 創(chuàng)建接口實例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

// 調(diào)用接口方法
r1.on("line", function (line) {
    switch (line.trim()) {
        case "copy":
            console.log("復制");
            break;
        case "hello":
            r1.write("Hello ");
            console.log("World!");
            break;
        case "close":
            r1.close();
            break;
        default:
            console.log("沒有找到命令!");
            break;
    }
})

// close事件監(jiān)聽
r1.on("close", function () {
    console.log("再見");
    process.exit(0);
})

在這里插入圖片描述

注意:'line’事件,這個事件就是在用戶輸完一行,按下回車后就會觸發(fā)的事件,它會將用戶輸入的數(shù)據(jù)通過回調(diào)函數(shù)傳回來,可在此方法里處理用戶輸入的數(shù)據(jù)

4 示例2:模擬命令行的輸入輸出

示例代碼:

// 引入readline模塊
let readline = require("readline");

// 創(chuàng)建接口實例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

// 方法方法setPromat(promat) ,就是給每一行設置一個提示符,
// 就好比window命令行的> ,這里設置的是Test>
r1.setPrompt("Test> ");
// prompt()是最重要的方法,因為它體現(xiàn)了readline的核心作用,
// 以行為單位讀取數(shù)據(jù),prompt方法就是在等待用戶輸入數(shù)據(jù)
r1.prompt();

// 調(diào)用接口方法
// 監(jiān)聽了'line' 事件,因為prompt方法調(diào)用一次就只會讀取一次數(shù)據(jù)
// 所以,在這個方法又調(diào)用了一次prompt方法,這樣就可以繼續(xù)讀取用戶輸入
// 從而達到一種命令行的效果
r1.on("line", function (line) {
    switch (line.trim()) {
        case "copy":
            console.log("復制");
            break;
        case "hello":
            console.log("World!");
            break;
        case "close":
            r1.close();
            break;
        default:
            console.log("沒有找到命令!");
            break;
    }
    r1.prompt();
});

// close事件監(jiān)聽
r1.on("close", function () {
    console.log("再見");
    process.exit(0);
})

在這里插入圖片描述

說明:
1、方法setPromat(promat) ,就是給每一行設置一個提示符,就好比window命令行的> ,這里設置的是Test>
2、prompt()是最重要的方法,因為它體現(xiàn)了readline的核心作用,以行為單位讀取數(shù)據(jù),prompt方法就是在等待用戶輸入數(shù)據(jù)
3、監(jiān)聽了’line’ 事件,因為prompt方法調(diào)用一次就只會讀取一次數(shù)據(jù),所以,在這個方法又調(diào)用了一次prompt方法,這樣就可以繼續(xù)讀取用戶輸入,從而達到一種命令行的效果

到此這篇關于Node.js中readline模塊實現(xiàn)終端輸入的文章就介紹到這了,更多相關Node.js 終端輸入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • node.js使用redis儲存session的方法

    node.js使用redis儲存session的方法

    這篇文章主要介紹了node.js使用redis儲存session的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Nodejs極簡入門教程(一):模塊機制

    Nodejs極簡入門教程(一):模塊機制

    這篇文章主要介紹了Nodejs極簡入門教程(一):模塊機制,本文講解了模塊基礎知識、模塊的加載、包等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • npm安裝報錯npm ERR! Error: EPERM: operation not permitted解決

    npm安裝報錯npm ERR! Error: EPERM: operation&

    這篇文章主要為大家介紹了npm安裝報錯npm ERR! Error: EPERM: operation not permitted解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • nodejs處理tcp連接的核心流程

    nodejs處理tcp連接的核心流程

    這篇文章主要介紹了nodejs處理tcp連接的核心流程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • NodeJS實現(xiàn)自定義流的方法

    NodeJS實現(xiàn)自定義流的方法

    在 NodeJS 中要想實現(xiàn)自定義流,需要依賴模塊 stream ,直接引入,不需下載,所有種類的流都是繼承這個模塊內(nèi)部提供的對應不同種類的類來實現(xiàn)的。接下來通過本文給大家介紹NodeJS實現(xiàn)自定義流的方法,一起看看吧
    2018-08-08
  • Node.js(安裝,啟動,測試)

    Node.js(安裝,啟動,測試)

    這里主要介紹基于windows平臺上最簡單方便的安裝方式,啟動以及簡單測試
    2014-06-06
  • 詳解Node.js 中使用 ECDSA 簽名遇到的坑

    詳解Node.js 中使用 ECDSA 簽名遇到的坑

    這篇文章主要介紹了詳解Node.js 中使用 ECDSA 簽名遇到的坑,主要是使用 Node.js 的 Crypto 模塊無法校驗網(wǎng)絡傳輸過來的簽名結(jié)果,感興趣的小伙伴們可以參考一下
    2018-11-11
  • nodejs中的express-jwt的使用解讀

    nodejs中的express-jwt的使用解讀

    這篇文章主要介紹了nodejs中的express-jwt的使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 淺析Node.js:DNS模塊的使用

    淺析Node.js:DNS模塊的使用

    本篇文章主要介紹了Node.js:DNS模塊的使用,DNS模塊包涵有關DNS查詢和操作的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • node.js中的events.emitter.removeAllListeners方法使用說明

    node.js中的events.emitter.removeAllListeners方法使用說明

    這篇文章主要介紹了node.js中的events.emitter.removeAllListeners方法使用說明,本文介紹了events.emitter.removeAllListeners 的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論