高明1025笔记

2016-11-01  本文已影响0人  东海虬髯客

终端和nodejs的io交互(io是input和output,输入和输出)

终端和io交互需要引入一个nodejs官方模块:readline模块

Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require(“readline”)可以引用模块。

创建Readline实例

readline.createInterface(options)
创建一个readline的接口实例. 接受一个Object类型参数,可传递以下几个值:

var readline = require(‘readline’);
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
接口

一个简单的readline案例
var readline = require('readline');
var rl = readline.createInterface(process.stdin,process.stdout);

// question方法
rl.question('what is you name? ',function(answer){
  console.log('my name is ' + answer);
  //不加close,则不会结束
  rl.close();
});
// close事件监听
rl.on('close',function(){
  console.log('欢迎下次再来');
  process.exit(0);
});

类似命令行的输入出
var readline = require('readline');
var rl = readline.createInterface(process.stdin,process.stdout);
rl.setPrompt('please>');
rl.prompt();
rl.on('line',(line)=>{
  switch(line.trim()){
    case 'pause':
      rl.pause();
      break;
    case 'copy':
      console.log('复制');
      break;
    case 'hello':
        rl.write("Write");
        console.log('world!');
        break;
    default:
      console.log('没有找到命令');
      break;
  }
  rl.prompt();
});

rl.on('close',function(){
  console.log('欢迎下次再来');
  process.exit(0);
});
rl.on('pause', function() {
  console.log('Readline 输入暂停.');
});

监听与处理Readline事件
rl.on('line', (cmd) => {
  console.log(`You just typed: ${cmd}`);
});
rl.on('pause', function() {
  console.log('Readline 输入暂停.');
});
rl.on('resume', function() {
  console.log('Readline 恢复.');
});
rl.on('close',function(){
  console.log('欢迎下次再来');
  process.exit(0);
});

浏览器和nodejs终端交互

var http = require("http");//引入http模块
var url = require("url");//引入url模块
var fs = require("fs");//引入fs模块
var ip = "192.168.238.129";//设置IP地址
var port =3000;//设置端口号
var server = new http.Server();//创建服务
server.listen(port,ip);//监听
server.on('request',(req,res) =>{//on方法
  var pathname =url.parse(req.url).pathname;//路径名
  switch (pathname) {
    case '/f':  //路径名=‘/f’
    fs.readFile('./jsq.html',(err,content) =>{
      res.writeHead(200,{"Content-type":"text/html;charset='utf-8'"});
      res.write(content);
      res.end();
    });
      break;
    default:

  }
});
querystring模块

负责读取传递的参数

var qs =require("querystring");
上一篇 下一篇

猜你喜欢

热点阅读