【发布时间】:2018-12-25 21:07:08
【问题描述】:
我正在使用这段代码来创建和编写一个新目录和一个文件。 我刚开始学习nodejs
var lib = {};
lib.baseDir = path.join(__dirname,'/../.data/');
lib.create = function(dir,file,data,callback){
fs.open(lib.baseDir+dir+'/'+file+'.json', 'wx', function(err, fileDescriptor){
if(!err && fileDescriptor){
var stringData = JSON.stringify(data);
// Write to file and close it
fs.writeFile(fileDescriptor, stringData,function(err){
if(!err){
fs.close(fileDescriptor,function(err){
if(!err){
callback(false);
} else {
callback('Error closing new file');
}
});
} else {
callback('Error writing to new file'+'lib.baseDir');
}
});
} else {
callback(err);
}
});
};
但我反复收到错误
{ Error: ENOENT: no such file or directory, open 'C:\Users\Jawahr\Documents\GitHub\node-api\.data\test\newFile.json'
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\Jawahr\\Documents\\GitHub\\node-
api\\.data\\test\\newFile.json' }
在 index.js 中调用这个库
var _data = require('./lib/data');
_data.create('test','newFile', {"asdksadlk" : "asldj"} ,function(err) {
console.log('this was the error ',err);
});
我已经在这里停留了一段时间,是因为pathname 和filename 包含"C:" 部分,它在Windows 10 中具有冒号一个保留字符,如果是如何解决这个问题。
使用 Windows 10 和 NodeJs 8.6。
【问题讨论】:
-
您的 PC 上是否存在目录 'C:\Users\Jawahr\Documents\GitHub\node-api\.data\test\'?
标签: javascript node.js windows fs