nodejs目录操作

该博客介绍了如何使用Node.js的fs和path模块在指定路径下创建一个包含css、js、img目录以及index.html文件的网站站点。通过定义初始目录结构并遍历创建每个元素,实现了文件和目录的同步创建。index.html文件包含了基本的HTML结构。
摘要由CSDN通过智能技术生成

目录操作

使用nodejs代码在电脑中创建一个网站站点的目录,包括css,js和img目录以及一个index.html 文件。

步骤一:使用require()导入路径操作模块和文件操作系统模块

const fs = require('fs');
const path = require('path');

require()用于引入模块、 JSON、或本地文件。一般为了方便使用,将变量名与模块名保持一致。

步骤二:初始化目录结构

let initdata = {
    projectname:"demo",
    data:[
        {name:'img',type:'dir'},
        {name:'css',type:'dir'},
        {name:'js',type:'dir'},
        {name:'index.html',type:'file'}
    ]
}

img,css及js的类型设置为dir,即文件夹类型。index.html设置为file类型,即文件类型。

步骤三:创建项目储存的地址

let root = 'F:\\nodejs\\vscode';

地址可以随意设置,但要确保正确,并且要为双\ ,即将其转义。

步骤四:创建项目的根路径

fs.mkdir(path.join(root,initdata.projectname),(err)=>{
    if(err){
        return;
    }
});
//在root地址下创建以projectname中设置的值为名称的文件夹,
如果创建失败,则返回err.

path.join() 方法会将所有给定的 path 片段连接到一起,然后规范化生成的路径。
fs.mkdir(path[, options], callback):异步的创建目录

步骤五:创建子目录和文件

initdata.data.forEach((i)=>{
    if(i.type=='dir'){
        // fs.mkdir(path.join(root,initdata.projectname,i.name));
        fs.mkdirSync(path.join(root, initdata.projectname, i.name));
    }else if(i.type=='file'){
        fs.writeFileSync(path.join(root,initdata.projectname,i.name),fileContent)
    }
})

将目录结构data中的数据遍历出来,并判断它的类型,如果是dir类型则创建目录。如果是file类型则创建文件。

创建目录:fs.mkdirSync(path[, options]):同步创建目录

创建文件:因为html文件中有固定的模板,因此要设置文档中的内容。如图:

let fileContent = `<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

总代码

const fs = require('fs');
const path = require('path');
let root = 'F:\\nodejs\\vscode';
let fileContent = `<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
`;
let initdata = {
    projectname:"demo",
    data:[
        {name:'img',type:'dir'},
        {name:'css',type:'dir'},
        {name:'js',type:'dir'},
        {name:'index.html',type:'file'}
    ]
}
fs.mkdir(path.join(root,initdata.projectname),(err)=>{
    if(err){
        return;
    }
});
initdata.data.forEach((i)=>{
    if(i.type=='dir'){
        // fs.mkdir(path.join(root,initdata.projectname,i.name));
        fs.mkdirSync(path.join(root, initdata.projectname, i.name));
    }else if(i.type=='file'){
        fs.writeFileSync(path.join(root,initdata.projectname,i.name),fileContent)
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值