我需要将文件写入以下路径:
fs.writeFile('/folder1/folder2/file.txt', 'content', function () {…});
但这条路可能并不存在.所以我得到了以下错误:
message=enoint,打开/folder1/folder2/file.txt
如何将内容写入该路径?
我需要将文件写入以下路径:
fs.writeFile('/folder1/folder2/file.txt', 'content', function () {…});
但这条路可能并不存在.所以我得到了以下错误:
message=enoint,打开/folder1/folder2/file.txt
如何将内容写入该路径?
从 node v10开始,它内置于fs.mkdir函数中,我们可以将其与path.dirname结合使用:
var fs = require('fs');
var getDirName = require('path').dirname;
function writeFile(path, contents, cb) {
fs.mkdir(getDirName(path), { recursive: true}, function (err) {
if (err) return cb(err);
fs.writeFile(path, contents, cb);
});
}
对于旧版本,可以使用mkdirp:
var mkdirp = require('mkdirp');
var fs = require('fs');
var getDirName = require('path').dirname;
function writeFile(path, contents, cb) {
mkdirp(getDirName(path), function (err) {
if (err) return cb(err);
fs.writeFile(path, contents, cb);
});
}
如果整个路径已经存在,那么mkdirp
就是一个 node .否则它会为您创建所有缺失的目录.
本模块满足您的需求:https://npmjs.org/package/writefile.在谷歌搜索"writefile mkdirp"时找到了它.这个模块返回一个promise ,而不是接受回调,所以一定要先阅读一些promise 的介绍.这可能会让你的事情变得复杂.
我给出的函数在任何情况下都有效.