I am using this block of code to create and write a new directory and a file. I just started to learn 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);
  }
 });
};
but I am repeatedly getting the error
{ 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' }
calling this library in a index.js as
var _data = require('./lib/data');
_data.create('test','newFile', {"asdksadlk" : "asldj"} ,function(err) {
  console.log('this was the error ',err);
});
I've been stuck here for a while, is it because the pathname and filename contained the part "C:" which has colon a reserved char in windows 10, if it is the problem how to solve this.
using windows 10 and NodeJs 8.6.
 
     
     
     
    