nodejs readline模塊
什么是readline
Readline是Node.js里實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出的封裝好的模塊猴鲫,
通過(guò)這個(gè)模塊我們可以以逐行的方式讀取數(shù)據(jù)流佃延。
使用require(“readline”)可以引用模塊部逮。
如何使用readline
- 創(chuàng)建readline實(shí)例
- 學(xué)習(xí)里面的接口方法
- 學(xué)習(xí)監(jiān)聽(tīng)與處理Readline事件
方法setPromat(promat),就是給每一行設(shè)置一個(gè)提示符
promat()可以算是最重要的方法了西采,因?yàn)樗朋w現(xiàn)了Readline的核心作用惕味,以行為單位讀取數(shù)據(jù)僚稿,premat方法就是在等待用戶輸入數(shù)據(jù)
這里又監(jiān)聽(tīng)了’line’ 事件蹦掐,因?yàn)閜romat方法調(diào)用一次就只會(huì)讀取一次數(shù)據(jù),所以户辞,在這個(gè)方法又調(diào)用了一次promat方法泌类,這樣就可以繼續(xù)讀取用戶輸入,從而達(dá)到一種命令行的效果
代碼示例
//引入readline模塊
var readline = require('readline');
//創(chuàng)建readline接口實(shí)例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('請(qǐng)輸入:');
rl.prompt();
//監(jiān)聽(tīng)數(shù)據(jù)流
rl.on('line',(line)=>{
var str = line.trim(); //輸入數(shù)據(jù)流
console.log('你輸入的是:' + str);
});
//close事件監(jiān)聽(tīng)
rl.on('close',function(){
//結(jié)束程序
console.log('bye bye');
});
//引入readline模塊
var readline = require('readline');
//創(chuàng)建readline接口實(shí)例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('請(qǐng)輸入:');
rl.prompt();
//監(jiān)聽(tīng)數(shù)據(jù)流
rl.on('line',(line)=>{
var str = line.trim(); //輸入數(shù)據(jù)流
// console.log('你輸入的是:' + str);
if(str==0){
console.log('bye bye');
process.exit();
}else{
console.log('你輸入的是:' + str);
rl.prompt();
}
});
//hello.js文件
exports.work = function(string){
console.log('現(xiàn)在是開(kāi)會(huì)時(shí)間底燎,不適合說(shuō)笑 '+string);
}
function ww(){
console.log('this is working');
}
exports.w = ww;
//引入readline模塊
var readline = require('readline');
var hello = require('./hello'); // 引入模塊
//創(chuàng)建readline接口實(shí)例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('請(qǐng)輸入:');
rl.prompt();
//監(jiān)聽(tīng)數(shù)據(jù)流
rl.on('line',(line)=>{
var str = line.trim(); //輸入數(shù)據(jù)流
// console.log('你輸入的是:' + str);
if(str==0){
console.log('bye bye');
process.exit();
}else{
console.log('你輸入的是:' + str);
hello.work(str);
rl.prompt();
}
});
QueryString模塊
QueryString 模塊用于實(shí)現(xiàn)URL參數(shù)字符串與參數(shù)對(duì)象的互相轉(zhuǎn)換
var url = require('url');
var qs = require('querystring');
var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
queryUrl = url.parse(queryUrl).query ;
console.log(queryUrl) ;
console.log(qs.parse(queryUrl)) ;
運(yùn)行結(jié)果:
name=bigbear&memo=helloworld
{ name: 'bigbear', memo: 'helloworld' }