• fs和http模块


    fs模块写入文件的方式
    导入内置模块
        const fs=require("fs")
     
    一、异步写入方式
        fs.writeFile("写入文件的路径",str,"utf-8",(err)=>{
            console.log();
        })
     
    二、同步写入方式
           fs.writeFileSync("写入文件的路径",str,"utf-8");
     
    三、流的写入方式
           var fn=fs.createWriteStream("写入文件的路径");
           fn.write(str,"utf-8");
           fn.end(); 
           fn.on("finish",()=>{     });
           fn.pause();    暂停
           fn.resume();  继续    
      
    err:错误优先
    utf-8:有这个参数以字符串输出,没有就以八分数组输出
    str:要写入的内容
     
    fs模块读取文件的方式
    导入内置模块
        const fs=require("fs")
     
    一、异步读取方式
        fs.readFile("路径","utf-8",(err,data)=>{
            console.log(data);
        })
     
    二、同步读取方式
           fs.readFileSync("路径","utf-8")
           console.log(data);
     
    三、流的读取方式
           var fn=fs.createReadStream("路径");
           var str=""; 
           fn.on("data",(thunk)=>{  str+=thunk  });
           fn.on("end",()=>{  
                console.log(str);
          }); 
           fn.pause();    暂停
           fn.resume();  继续    
      
        流的方式读取大文件进度        
            var rs= fs.createReadStream("路径");
            文件的大小
            var filesize=0;
            fs.stat("路径",(err,info)=>{
                filesize=info.size;
            })
            var len=0;
            rs.on("data",(thunk)=>{
            len+=thunk.length;
                console.log((len/filesize*100).toFixed(2)+'%');
            })
            rs.on("end",()=>{
                console.log("read complete")
            })
    err:错误优先
    utf-8:有这个参数以字符串输出,没有就以八分数组输出
    data:要读取的文件
     
    fs模块读取文件方式的顺序
        同步 ——> 流 —> 异步
     
    fs模块copy方式
    一、小文件的copy方式
            var copyFile=(src,dest)=>{
                new Promise((callbaack)=>{
                    fs.readFile(src,"utf-8",(err,data)=>{
                        callback(data);
                    })
                }).then((data)=>{
                    fs.writeFile(dest,data,"utf-8",()=>{
                        console.log();
                    })
                })
            }
        src:表示原文件
        dest:表示被copy的目标文件
        data:表示要读取的文件
     
    二、大文件的copy方式        
            var rs=fs.createReadStream("原文件路径");
            var ws=fs.createWriteStream("目标文件路径");
            var size=0; 定义文件的大小
            var len=0 定义加载的进度
            fs.stat("原文件路径",(err,info)=>{
                size=info.size;
                rs.on("data",(thunk)=>{
                    len+=thunk.length;
                    var flag=ws.write(thunk,(err)=>{
                        if(!err){
                            process.stdout.clearLine();  清屏
                            process.stdout.cursorTo(0);  让光标在第一行
                            process.stdout.write((len/size*100).toFixed(2)+"%");
                        }
                    })
                    if(!flag){
                        rs.pause();  如果没有写入完成,就暂停读取
                    }
                })
            })
            ws.on("drain",()=> drain表示写入完成
                rs.resume();  如果写入完成,就继续读取
            })
            rs.on("end",()=>{
                process.stdout.clearLine();
                process.stdout.cursorTo(0);
            })
     
    http模块
    导入模块
        const http=require("http");
     
    操作
        var ser=http.createServer((req,res)=>{
            res.writeHead(200,"Content-type",'text/html;charset=uft-8'); 防止中文乱码
            res.write(`<!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <meta name="viewport" content="width=device-width, initial-scale=1.0">
                <meta http-equiv="X-UA-Compatible" content="ie=edge">
                <title>Document</title>
            </head>
            <body>`)
            res.write("<h1>hello world!!!!!</h1>");
            res.end(`</body>
            </html>`);
        })
        ser.listen(端口号,()=>{
            console.log("listen"+ser.address().port+"...");
        })
     
    红色部分是为了看起来像html页面
    req:表示请求对象
    res:表示响应对象
    200:表示请求成功的状态吗
  • 相关阅读:
    》》》oracle新建用户
    SVN(subversion )服务端和客户端的下载安装使用
    《《《 【WEB前端】零基础玩转微信小程序——在vscode(Visual Studio Code)安装easy less
    《《《 【WEB前端】零基础玩转微信小程序——新建⼩程序项⽬
    《《《 【WEB前端】零基础玩转微信小程序——新建一个项目页面
    《《《 【WEB前端】零基础玩转微信小程序中的 相关代码dome03.wxml
    cocos2dx 流光着色器
    [NCTF2019]True XML cookbook
    [BJDCTF2020]EasySearch
    [GKCTF2020]老八小超市儿
  • 原文地址:https://www.cnblogs.com/tis100204/p/10309961.html
Copyright © 2020-2023  润新知