Nodejs 的dirname 方法 以及数据以某种具体的格式导出

该方法用于获取一个路径中的目录名,使用方式如下:path.dirname(p);

该方法使用一个参数,参数为一个路径可以是相对路径,绝对路径,可以为一个目录的路径,也可以为一个文件的路径。当参数值为目录路径时,该方法返回该目录的上层目录;当参数值为文件路径时,该方法返回该文件所在的目录。

var dirname = path.dirname("./a/b");

console.log(dirname);      //   .a

 

Nodejs 递归创建多级目录

nodejs递归创建目录,同步和异步方法。在官方API中只提供了最基本的方法,只能创建单级目录,如果要创建一个多级的目录(./aaa/bbb/ccc)就只能一级一级的创建,感觉不是很方便,因此简单写了两个支持多级目录创建的方法。 

代码同步方法的代码如下
function mkdirsSync(dirname) {
    if (fs.existsSync(dirname)) {
        console.log(dirname);
        return true;
    } else {
        if (mkdirsSync(path.dirname(dirname))) {
            console.log(path.dirname(dirname));
            fs.mkdirSync(dirname);
            return true;
        }
    }
}

 

注意filePath 一定要在最后加上   /  否则导出会报错的。

var filePath = "./serial/miguCoinSerial/";

 

 

 

导出数据操作非常频繁,其中导出的数据的思路分为2步骤。

1. 先通过文件系统将数据写到服务器上面。

1)首先根据需求,从数据库中找到要导出的数据。

2)规定导出文件的路径即要将数据导出到去服务器的哪个文件夹下。判断文件夹是否存在,如果不存在,直接创建文件夹,导出数据。如果文件夹存在,遍历文件夹,判断文件夹里面的文件是文件夹还是文件,如果是文件,直接删除。如果是文件夹,要先删除文件夹的文件才能删除文件夹。

3)重点在于怎出导出数据到服务器  

写要用到文件系统fs      

function exportdata(filePath,msg,res){
    var data = [['序号', '用户名','密码', '昵称']];
    for (var i = 0; i < msg.length; i++) {
        var param=msg[i];
        var username=param.usersName;
        var password=param.password;
        var nick=param.nick;
        var exportContent = [username, password,nick];
        data.push(exportContent);
    }
    var buffer = xlsx.build([{name: "流水记录", data: data}]);
    var filename = new Date().format('yyyy-MM-dd') + ".xlsx";
    fs.writeFileSync(filePath + filename, buffer, 'binary');
    console.log("写完了");
    var result = JSON.stringify({scuess: true, filename: filename});
    res.end(result);
}        

 

2. 在从服务器上面下载下来

用window.open()打开新页面 

 

转载于:https://www.cnblogs.com/satisfysmy/p/6869867.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值