美文网首页
2016年8月10日学习笔记

2016年8月10日学习笔记

作者: 刘宇龙 | 来源:发表于2016-08-11 09:56 被阅读0次

    js可以加后面的后缀,也可以不加,一般不加

    解压:tar zxvf +文件名

    打包:tar zcvf +文件名.tar.gz nodejs/

    组件化开发:把已有模块调用

    这是关于关联css js等样式

    default://处理来自本地目录的文件,主要是一些静态资源文件,搭建静态服务器还有其他的方法
    
    var filename = url.pathname.substring(1);//去掉前导‘/’
    
    var type = getType(filename.substring(filename.lastIndexOf('.')+1));
    
    console.log(filename);、、取得文件类型 css  js....
    
    //异步读取文件,并将内容作为单位的数据模块传给回调函数
    
    //对于确实很大的文件,使用API fs。createReadStream()更好
    
    fs.readFile(filename,function(err,content) {
    
      if (err) {
        response.writeHead(404,{'Content-Type':'text/plain; charset="utf-8"'})
        response.write(err.message);
        response.end();
      } else {
        response.writeHead(200,{'Content-Type': type });
        response.write(content);
        response.end();
      }
    })
    break;
    

    这里定义了一个用来判断文件类型的函数

    function getType(endTag){
      var type=null;
      switch (endTag) {
        case 'html':
          type = 'text/html;charset=utf-8';
          break;
        case 'htm':
          type = 'text/html;charset=utf-8';
          break;
        case 'js':
          type = 'application/javascript;charset=utf-8';
          break;
        case 'css':
          type = 'text/css;charset=utf-8';
          break;
        case 'txt':
          type = 'text/plain;charset=utf-8';
          break;
        case 'manifest':
          type = 'text/cache-manifest;charset=utf-8';
          break;
        default
          type = 'application/octet-stream';
          break;
      }
      return type
    }
    

    客户端交互

    //定义变量来读取字形流
    var readline = require('readline');
    //定义变量调用输入输出模块
    var rl = readline.createInterface(process.stdin,process.stdout);
    //在控制台输出文本
    rl.setPrompt('请输入:')
    //方法用于显示一个带有提示信息,并且用户可输入信息的对话框。
    输出流
    rl.prompt();
    rl.on('line',(line));//形参不需要定义,直接调用
    
      var str = line.trim();
      //在控制台输出
      console.log('你输入的是:'+ str);
      rl.prompt();
      //触发关闭事件执行输出
    });.on('close',()=>{
      console.log("欢迎你下次再来");
      process.exit();
    });
    

    readline 模块

    //定义变量来读取字形流
    var readline = require('readline');
    //引入hello文件
    var sk = require('./hello');
    //定义变量调用输入输出模块
    var rl = readline.createInterface(process.stdin,process.stdout);
    //在控制台输出文本
    rl.setPrompt('请输入:')
    //方法用于显示一个带有提示信息,并且用户可输入信息的对话框。
    输出流
    rl.prompt();
    rl.on('line',(line));//形参不需要定义,直接调用
    
      var str = line.trim();
    //如果输入0执行关闭
      if(str == '0'){
        console.log("欢迎你下次再来");
        process.exit();
         }
         else {
       //调用hello方法
           sk.shangke(str);
           rl.prompt();
           sk.h;
         }
    
      });
    

    exports声明模块

    //exports是nodeji一个关键,声明一个模块
    exports.shangke = function(stringa){
        console.log('这个是上课的模块'+ stringa);
    }
    //创建输出函数
    function hello(){
      console.log('this is hello')
    }
    exports.h=hello();
    

    用nodejs实现IO交互在终端显示

    const readline = require('readline');
    const rl = readline,createInterface(process.stdin,rocess.stdout);
    console.log("请输入任意字符,输入空字符或0表示退出");
    //rl.setPrompt('请输入');
    rl.prompt();
    rl.cn('line',(line)=>{
      if(line.trm()!=0){
        console.log("您输入的是:"+line.trim());
      }else {
        rl.close();
      }
    }).on('close',()=>{
      console.log("Have a great day!");
      process.exit(0);
    });
    

    用nodejs 实现IO交互在浏览器中显示

    var http = require('http');
    var hostname = '192.168.96.128';
    var port = 2000;
    var fs = require('fs');
    //处理字符串,字形流的模块
    var qs = require('querystring');
    var url = require('url');
    
    http.createServer(onRequest).listen(port,hostname);;
    
    function onRequest(request,response){
      var pathname = url.parse(request.url).pathname;
    // url地址解析 根据不同的url地址进行不同操作
      if(pathname=='/'){
        response.writeHead(200,('Content-Type':'text/html'));
        fs.readFile("jsq.html","utf-8",function(e,data){
          response.write(data);
          response.end();
        });
      }else if(pathname=="/postlogin"){
        var a ="";
        var result = "";
        request.addListener("data",function(postdata){
          a +=postdata;
    //qs是querystring方法
          var b = qs.parse(a);   //转换成json对象
    //接收表单数据
          var num1 = parseInt(b["num1"]);
          var num2 = parseInt(b["num2"]);
          var ysf = parseInt(b["ysf"]);
          switch(ysf){
            case 1:
                result = add(num1,num2);
                break;
            case 2:
                result = jian(num1,num2);
                break;
            case 3:
                result = cheng(num1,num2);
                break;
            case 4:
                result = chu(num1,num2);
                break;
          }
        });
        request,addListener("end",function(){
          response.writeHead(200,("Content-Type":"text/html;charset=utf-8"));
          fs.readFile("jsq.html","utf-8",function(e,data){
            response.write(data);
            response.write("结果:"+result);
            response.end();
          });
        });
      }else {
        response.writeHead(200,("Content-Type":"text/html"));
        response.write("error");
        response.end();
      }
    }
    
    //加法
    function add(a,b){
      return a+b;
    }
    //减法
    function jian(a,b){
      return a-b;
    }
    //乘法
    function cheng(a,b){
      return a*b;
    }
    //除法
    function chu(a,b){
      return a/b;
    }

    相关文章

      网友评论

          本文标题:2016年8月10日学习笔记

          本文链接:https://www.haomeiwen.com/subject/wxajsttx.html