Nodejs 的dirname 方法
Posted 雪落无痕1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()打开新页面
以上是关于Nodejs 的dirname 方法的主要内容,如果未能解决你的问题,请参考以下文章
nodejs __dirname 与 process.cwd()的区别
[F2016061801] NodeJS之旅-使用webpack构建项目时遇到__dirname路径不对