最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js用readline模塊實現(xiàn)輸入輸出

 更新時間:2016年12月16日 09:09:09   投稿:daisy  
在學C++的時候,有cout和cin,Java也有println和Scanner控件,Node.js也有如同C++和Java的標準輸入,當然,是用JavaScript實現(xiàn)的,它就是Readline模塊。下面這篇文章就給大家詳細介紹一下readline模塊,來實現(xiàn)Node.js的控制臺輸入輸出。有需要的可以參考借鑒。

什么是Readline

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

如何使用Readline

以使用為角度的話,學習Readline,我們需要學習它的三個部分:

  1. 創(chuàng)建Readline實例
  2. 學習里面的接口方法
  3. 學習監(jiān)聽與處理Readline事件

下面我們通過實例來學習這三個部分。

實例1:我叫小明

代碼如下:

/**
 * Created by Administrator on 2015/9/10.
 */
// 引入readline模塊
var readline = require('readline');

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

// question方法
rl.question("你叫什么?",function(answer){ 
 console.log("名字是:"+answer);
 // 不加close,則不會結束
 rl.close();
});

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

上面的實例用到了我們需要學習到的三個部分,首先使用了createInterface創(chuàng)建了一個接口實例,然后使用了question方法來詢問姓名,最后是監(jiān)聽readlineclose事件,因為無論是方法名和事件的監(jiān)聽的名字都比較直觀,關于它們的作用也能一目了然,我這里就只提了三點需要注意的:

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

實例2:輸入與輸出

/**
 * Created by Administrator on 2015/9/10.
 */
// 引入readline模塊
var readline = require('readline');

var rl = readline.createInterface({ 
 input: process.stdin,
 output: process.stdout
});

rl.on('line', function(line){ 
 switch(line.trim()) {
  case 'copy':
   console.log("復制");
   break;
  case 'hello':
   rl.write("Write");
   console.log('world!');
   break;
  case 'close':
   rl.close();
   break;
  default:
   console.log('沒有找到命令!');
   break;
 }
});
rl.on('close', function() { 
 console.log('bye bye');
 process.exit(0);
});

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

實例3:類似命令行的輸入輸出

var readline = require('readline'); 
var rl = readline.createInterface(process.stdin, process.stdout);

rl.setPrompt('Test> '); 
rl.prompt();

rl.on('line', function(line) { 
 switch(line.trim()) {
  case 'copy':
   console.log("復制");
   break;
  case 'hello':
   console.log('world!');
   break;
  case 'close':
   rl.close();
   break;
  default:
   console.log('沒有找到命令!');
   break;
 }
 rl.prompt();
});

rl.on('close', function() { 
 console.log('bye bye!');
 process.exit(0);
});

運行截圖如下:

這個實例里出現(xiàn)了兩個新方法

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

附錄

這里只寫了三個比較簡單的例子來說明Readline的使用,如果還想要了解更多的關于Readline的用法以及更多的方法和事件,可以去看官方的API

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

  • 從零學習node.js之模塊規(guī)范(一)

    從零學習node.js之模塊規(guī)范(一)

    Node.js是一個基于谷歌瀏覽器JavaScript執(zhí)行環(huán)境建立的一個平臺,讓JavaScript可以脫離客戶端瀏覽器運行,讓 JavaScript具有服務器語言的能力。從本文開始我們進行學習node.js,這篇文章主要介紹的是node.js中模塊規(guī)范的相關資料,需要的朋友可以參考下。
    2017-02-02
  • 如何利用nodejs自動定時發(fā)送郵件提醒(超實用)

    如何利用nodejs自動定時發(fā)送郵件提醒(超實用)

    這篇文章主要給大家介紹了關于如何利用nodejs實現(xiàn)自動定時發(fā)送郵件提醒的相關資料,這個功能非常實用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • NodeJS和瀏覽器中this關鍵字的不同之處

    NodeJS和瀏覽器中this關鍵字的不同之處

    這篇文章主要給大家介紹了關于NodeJS和瀏覽器中this關鍵字不同的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 如何制作一個Node命令行圖像識別工具

    如何制作一個Node命令行圖像識別工具

    這篇文章主要介紹了如何制作一個Node命令行圖像識別工具,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 學習node.js 斷言的使用詳解

    學習node.js 斷言的使用詳解

    這篇文章主要介紹了學習node.js 斷言的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Node.JS用純JavaScript生成圖片或滑塊式驗證碼功能

    Node.JS用純JavaScript生成圖片或滑塊式驗證碼功能

    有一些Node.JS圖片生成類庫,比如node-captcha等的類庫,需要c/c++程序生成圖片。跨平臺部署不是很方便。這里介紹幾個用純JS實現(xiàn)的圖片驗證碼生成模塊,需要的朋友可以參考下
    2019-09-09
  • node.js中module模塊的功能理解與用法實例分析

    node.js中module模塊的功能理解與用法實例分析

    這篇文章主要介紹了node.js中module模塊的功能理解與用法,結合實例形式分析了node.js module模塊的基本功能、原理、用法及相關操作注意事項,需要的朋友可以參考下
    2020-02-02
  • node.js Promise對象的使用方法實例分析

    node.js Promise對象的使用方法實例分析

    這篇文章主要介紹了node.js Promise對象的使用方法,結合實例形式分析了node.js中Promise對象的功能、定義、調用方法及相關使用技巧,需要的朋友可以參考下
    2019-12-12
  • node.js中的fs.futimesSync方法使用說明

    node.js中的fs.futimesSync方法使用說明

    這篇文章主要介紹了node.js中的fs.futimes方法使用說明,本文介紹了fs.futimesSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js(v16.13.2版本)安裝及環(huán)境配置的圖文教程

    Node.js(v16.13.2版本)安裝及環(huán)境配置的圖文教程

    本文主要介紹了Node.js(v16.13.2版本)安裝及環(huán)境配置的圖文教程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05

最新評論

隆林| 博客| 越西县| 林西县| 乐平市| 宜阳县| 海晏县| 改则县| 边坝县| 夏邑县| 丹阳市| 平乡县| 白银市| 民勤县| 婺源县| 黑山县| 巧家县| 清水河县| 军事| 白银市| 郧西县| 澎湖县| 兴宁市| 山阴县| 大余县| 黔南| 肥城市| 东丽区| 内黄县| 清镇市| 平谷区| 尤溪县| 辉县市| 太白县| 都安| 青冈县| 岗巴县| 兴海县| 三江| 襄垣县| 思茅市|