node.js创建项目文件夹

1.node关于文件、文件夹的操作

有了node以后js可以运行在服务器上

//文件处理
//当前文件地址
console.log(__filename)
//当前目录的地址
console.log(__dirname)
//path模块需要专门引入 require()引入模块
const path=require("path")
//basename获取目录的最后一部分
console.log(path.basename(__filename))
console.log(path.basename(__dirname))
//dirname查找目录
console.log(path.dirname(__filename))
console.log(path.dirname(__dirname))
//path.join()拼接路径
var txt=path.join(__dirname,"my.txt");
console.log(txt)

//fs模块 文件相关
const fs=require("fs")
//创建文件夹 fs.mkdir(文件地址,(err)=>{回调函数})
fs.mkdir(path.join(__dirname,"my"),(err)=>{
    console.log("成功了")
})
//删除文件
fs.rmdir(path.join(__dirname,"my"),(err)=>{
    console.log("略略略,成功")
})
//读文件夹目录 fs.readdir(文件地址,(err)=>{回调函数})
fs.readdir(__dirname,(err,files)=>{
    //files代表成功以后的读取目录
    console.log(files)
})
//写文件 fs.writeFile(文件地址,书写数据,回调函数)
//如果文件不存在,会直接创建。如果存在,直接修改
fs.writeFile(path.join(__dirname,"index.html"),"hello",(err)=>{
    console.log("写入成功")
})
//读文件操作 fs.readFile(文件地址,(err,files)=>{成功以后的回调})
fs.readFile(path.join(__dirname,"index.html"),(err,files)=>{
    //在node中,内容以buffer的形式存在
    //buffer.toString()把buffer形式转化为字符串
    console.log(files.toString());
})
//删除文件操作 fs.unlink(文件地址,(err)=>{成功以后的回调})
fs.unlink(path.join(__dirname,"index.html"),(err)=>{
    console.log("成功");
})
//检查文件状态,一般用来判断是目录还是文件夹
fs.stat(__filename,(err,stats)=>{
    //stats文件状态
    console.log(stats)
    //isDirectory()判断是否是目录
    console.log(stats.isDirectory())
    //isFile()判断是否是文件
    console.log(stats.isFile())
})
//判断当前目录下的所有文件状态
//第一步:读取目录下的所有文件
fs.readdir(__dirname,(err,files)=>{
    //遍历数组
    files.forEach((item,index)=>{
        //检测状态
        fs.stat(path.join(__dirname,item),(err,msg)=>{
            if(msg.isDirectory()){
                console.log(item+"是一个目录")
            }else{
                console.log(item+"是一个文件")
            }
        })
    })
})

2.封装一个可以创建项目文件夹的函数

//引入模块,通常用常量表示
const fs=require("fs");
const path=require("path");
function mydemo(data){
    return{
        proName:data,
        pro:[
            {
                name:"css",
                type:"dir"
            },
            {
                name:"images",
                type:"dir"
            },
            {
                name:"js",
                type:"dir"
            },
            {
                name:"index.html",
                type:"file"
            },
        ]
    }
}
//封装一个函数,实现调用函数,可以创建项目文件夹
function createDemo(vip){
    var str=`
    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
    `
    //调用函数,得到数据
    var demo=mydemo(vip)
    fs.mkdir(path.join(__dirname,vip),(err)=>{
        //进入此处说明项目文件夹创建成功
        //创建项目文件夹下各个文件
        //遍历查看文件状态
        demo.pro.forEach((item,index)=>{
            if(item.type=="dir"){
                //                          父级目录
                fs.mkdir(path.join(__dirname,vip,item.name),(err)=>{
                    //如果报错,打印错误
                    if(err) throw err;
                })
            }else{
                fs.writeFile(path.join(__dirname,vip,item.name),str,(err)=>{
                    if(err) throw err;
                })
            }
        })
    })
}
createDemo("淘宝")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值