nodejs---Readline、QueryString模块
Readline
要使用此模块,需要require('readline').Readline程序允许逐行读取一个流内容(例如process.stdin).
需要注意的是你一旦调用了这个模块,你的node程序将不会终止直到你关闭此接口。下面是如何让你的程序正常退出的方法:
常用方法
readline.createInterface(options)
创建一个readline的接口实例. 接受一个Object类型参数,可传递以下几个值:
- input - 要监听的可读流 (必需).
- output - 要写入 readline 的可写流 (必须).
- completer - 用于 Tab 自动补全的可选函数。见下面使用的例子。
- terminal - 如果希望 input 和 output 流像 TTY 一样对待,那么传递参数 true ,并且经由 ANSI/VT100 转码。 默认情况下检查 isTTY 是否在 output 流上实例化。
rl.pause()
暂停 readline 的输入流 (input stream), 如果有需要稍后还可以恢复。
rl.resume()
恢复 readline 的输入流 (input stream).
rl.close()
关闭接口实例 (Interface instance), 放弃控制输入输出流。"close" 事件会被触发。
rl.write(data, [key])
将 data 写入到 output 流。key 是一个代表键序列的对象;当终端是一个 TTY 时可用。
例一
var readline=require("readline");
var rl=readline.createInterface(process.s
tdin,process.stdout);
rl.setPrompt('请输入:');
rl.prompt();
rl.on
('line',(line)=>{
var str=line.trim();
console.log('你输入的是'+str);
}).on('close',()=>{
console.log('欢迎帅哥下次再来');
process.exit();
});
例二
var readline=require("readline");
var rl=readline.createInterface(process.s
tdin,process
.stdout);
rl.setPrompt('请输入:');
rl.prompt();
rl.on('line',(line)=>{
var str=line.trim();
if(str=='0'){
console.log('欢迎帅哥下次再来');
process.exit();
}else{
console.log('你输入的是'+str);
rl.prompt();
}
});
模块化
module.exports
&& require
Query String
这个模块提供一些处理 query string 的工具。它提供下列方法:
常用方法
querystring.stringify(obj, [sep], [eq])
序列化一个对象到一个 query string。可以选择是否覆盖默认的分割符('&')和分配符('=')。
querystring.parse(str, [sep], [eq], [options])
options对象可能包含maxKeys属性(默认为1000),它可以用来限制处理过的键(key)的数量.设为0可以去除键(key)的数量限制.
querystring.stringify({foo:‘bar’,cool:[‘x
ux’, ‘yys’]});
结果如:foo=bar&cool=xux&cool=yys
反序列化
querystring.parse(‘foo@bar$cool@xux$cool@
yys’,’@’,’$’);
结果如: { foo: ‘bar’ , cool: [‘xux’,
‘yys’] }
网友评论