模块

作者: likeli | 来源:发表于2018-01-29 21:22 被阅读0次

    buffer

    创建buffer对象的方法

    • 直接创建长度为12的代码

      var buff = new Buffer(12);//创建长度为12
      console.log(buff);
      buf1.fill(255,0);
      //fill(填充的值,开始位置,结束位置(没有既全部));
      console.log(buff);
      
    • 通过数组

      var buff = new Buffer([1,255,0xb3]);
      console.log(buff);
      
    • 通过字符串

      var buff = new Buffer(“你好”);
      console.log(buff);
      
    • 将buffer转成字符串通过toString

      var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f, 0x9c, 0xe4, 0xb9, 0x9f]);
      console.log(buf4.toString())
      
    • Node中推荐使用的方式

      var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f, 0x9c, 0xe4, 0xb9, 0x9f]);
      var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f]);
      var buff = new Buffer([0x9c, 0xe4, 0xb9, 0x9f]);
      console.log(buf4.toString());
      console.log(buf5.toString());
      //占用的内存高
      //console.log(Buffer.concat([buf4,buf5]).toString());
      //Node中推荐使用的方式
      var StringDecoder=require(“string_decoder”).StringDecoder;
      var decoder = new StringDecoder();
      console.log(decoder.write(buff));
      console.log(decoder.write(buff));
      

    fs

    //文件操作基于(fs模块) 1.文件的操作,2.文件夹的操作(目录的操作)
     //文件的操作
    var fs=require("fs");
    

    创建

     fs.writeFile("2.txt","我是2.txt文件",{flag:"a"},function (err) {
         if(err){
            console.log(err);
         }else{
            console.log("写入成功");
        }
     });
    

    追加内容,同步异步方法一样,所有同步的函数都是函数后面加 Sync
    异步

      fs.appendFile("2.txt","我是追加的内容",function (err) {
          if(err){
              console.log("写入错误")
          }else{
              console.log("写入成功");
          }
      })
    

    同步
    var res=fs.appendFileSync("2.txt","我是追加的内容");
    console.log(res);
    文件的读取

     fs.readFile("1.txt",function (err,data) {
         if(err){
             console.log(err);
         }else{
             console.log(data);
             //把buffer转化成字符串
             console.log(data.toString())
         }
    })
    

    文件的修改

     fs.rename("1.txt","5.txt",function (err) {
         if(err){
             return console.log(err);
         }else{
             console.log("修改成功");
         }
     })
    

    文件删除

     fs.unlink("2.txt",function (err) {
         if(err){
           return console.log(err);
         }else{
             console.log("删除成功");
         }
     })
    

    复制

     fs.readFile("5.txt",function (err,data) {
         if(err){
             console.log(err)
         }else{
             fs.writeFile("1.txt",data,{flag:"w"},function (err) {
                if(err){
                     console.log(err)
                 }else{
                     console.log("复制成功");
                 }
             })
         }
     })
    

    文件夹的操作
    目录创建
    mode 的三个数字,分别表示owner(所有者),group(组用户),others(其他用户)所具有的权限。
    1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7, 又比如group 具有读 和执行权限 1+4 = 5

     fs.mkdir("11","0777",function (err) {
         if(err){
             return console.log(err);
        }else{
             console.log("创建成功");
        }
     })
    

    修改文件夹权限

     fs.chmod("11",0777,function (err) {
         if(err){
             return console.log(err);
         }else{
             console.log("修改成功");
         }
     })
     fs.chmod("22",0777,function (err) {
         if(err){
             return console.log(err);
         }else{
             console.log("修改成功");
         }
     })
    

    修改文件夹名

    fs.rename("11","33",function (err) {
         if(err){
             console.log(err);
         }else{
             console.log("修改文件夹名成功");
        }
     })
    

    判断文件或者文件夹是否存在

     fs.exists("22",function (exists) {
         if(exists){
             return console.log("文件夹已经存在");
         }else{
         fs.mkdir("22",0777,function (err) {
             if(err){
                 return console.log(err);
             }else{
                 console.log("创建成功");
              }
          })
        }
     })
    

    文件夹删除,只能删除空文件夹

     fs.rmdir("22",function (err) {
       if(err){
           console.log(err);
       }else{
           console.log("删除成功");
       }
     })
    

    读取文件夹

     fs.readdir("22",function (err,data) {
         if(err){
             console.log(err)
         }else{
             console.log(data);
       }
     })
    

    显示文件的详细信息
    针对详细信息来判断是否是文件夹

     fs.stat("22",function (err,data) {
        if(err){
             console.log(err)
         }else{
             console.log(data);
             // 判断是否是文件
             var res=data.isFile();
             //判断是否是文件夹
             // data.isDirectory()
             if(res){
                 console.log("是文件");
             }else{
                 console.log("是文件夹")
             }
         }
     })
    

    删除文件夹的函数

    function removeDir(src) {
        //获取文件夹的内容
       var arr= fs.readdirSync(src);
       console.log(arr);
       //判断是否是文件,如果是文件删除,是文件夹,在执行相同函数
        for(var i=0;i<arr.length;i++){
            //子文件详细信息
            //组装文件或者文件夹的路径
            var url=src+"/"+arr[i];
            var data= fs.statSync(url);
         //判断每个元素是文件或者是文件夹
          if(data.isFile()){
             //是文件
             fs.unlinkSync(url);
          }else{54d
               removeDir(url);
          }
        }
        //删除空文件夹
        fs.rmdirSync(src);
    }
    removeDir("22");
    

    stream

      var http=require("http");
      var fs=require("fs");
      var url=require("url");
      var server=http.createServer(function (req,res) {
      var pathname=url.parse(req.url,true).pathname;
      if(pathname=="/" || pathname=="index"){
          var rs=fs.createReadStream("index.html");
          rs.pipe(res);
      }else if(pathname=="/goods"){
          var rs=fs.createReadStream("good.html");
          rs.pipe(res);
      }else if(pathname!="/favicon.ico"){
      var rs=fs.createReadStream("."+pathname);
      rs.pipe(res);
      }
      });
      server.listen(8888);
    

    sxpress

      var express = require("express");
      var app = express();
      var querystring = require("querystring");
      var bodyParse = require("body-parser");
      app.use(bodyParse.urlencoded({
          extended:true
      }));
      app.get("/",function(req,res){
          // res.send("<h1>我是主页</h1>");
      //    加载post提交页面
          res.sendFile(__dirname+"/post.html");
      })
      app.get("/goods",function(req,res){
          res.send("<h1>我是商品页</h1>");
      })
      app.post("/post",function(req,res){
          // var str = "";
          // req.on("data",function(chunk){
          //     str+=chunk;
          // })
          // req.on("end",function(){
          //     var data = querystring.parse(str);
          //     console.log(data);
          //     res.send(`<h1>姓名是:${data.username} 年龄      是:${data.age}</h1>`);
          // })
          //通过body-parse获取到参数
          console.log(req.body);
          res.send(`<h1>姓名是:${req.body.username} 年龄是:${req.body.age}</h1>`);
      })
      app.get("/get",function(req,res){
          var data = req.query;
          res.send(JSON.stringify(data));
      })
      app.get("/test/:id/:name",function(req,res){
          var str = `<h1>id的值是:${req.params.id};姓名是:${req.params.name}</h1>`;
          res.send(str);
      })
      //get请求或者是post请求
      app.all("/*",function(req,res){
          var pathname = req._parsedUrl.pathname;
          if(pathname!="favicon.ico"){
              res.sendFile(__dirname+pathname);
          }
      });
      app.listen(9898);
    

    cookie

      var express=require("express");
      var cookieParser=require("cookie-parser");
      var app=express();
      app.use(cookieParser());
      //设置cookie
      app.get("/setcookie",function(req,res){
      var nowTime=new Date();
      nowTime.setDate(nowTime.getDate()+7);
      console.log(nowTime);
      res.cookie("username","zhangsan",{expires:nowTime});
      res.send("设置cookie");
    })
    app.get("/getcookie",function(req,res){
          var username=req.cookies.username;
          res.send(`取到cookie内容是:${username}`)
      })
      app.listen(9001);
    

    session

      var express=require("express");
      var session=require("express-session");
      var app=express();
      app.use(session({
          secret:"mysecret",
          resave:false,
          saveUninitialized:true
      }));
      app.get("/setsession",function(req,res){
      req.session.username="zhang";
      res.send("session设置成功");
      })
      app.get("/getsession",function(req,res) {
          var username=req.session.username;
          res.send("session的内容是:"+username);
      })
      app.listen(8985);
    

    next

      var express=require("express");
      var app=express();
      app.use(function(req,res,next){
          //省政府
          req.money=100;
        next();
      })
      app.use(function(req,res,next){
          //市政府
          req.money-=20;
          console.log(req.money);
          next();
      })
      app.use(function(req,res,next){
          //区政府
          req.money="钱丢了";
          next();
      })
      app.use(function(err,req,res,next){
          if(err){
              console.log(err);
          }
      })
      app.all("/",function(req,res){
          console.log(req.money);
          res.send(""+req.money);
      })
      app.listen(8765);

    相关文章

      网友评论

          本文标题:模块

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