Shiva Alz
Shiva Alz

Reputation: 1

Can't find the file I created by fs.writeFile

I am trying to write a file in node.js using fs.writeFile, I use the following code:

 const fs = require('filer');
 const jsonString = JSON.stringify(myObj)
       fs.writeFile('/myFile.txt', jsonString, function (err) {
        if (err) throw err;
        console.log('Saved!');
      });
    }

I am sure the file is created, because I can read it by fs.readFile referring to the same address, but I cannot find it on the disk by using windows search. What I understood, if I change the localhost port it saves the files in another location. I already tried "process.cwd()", but it didn't work.

I really appreciate it if someone could help.

Upvotes: 0

Views: 2865

Answers (2)

mikeskk
mikeskk

Reputation: 126

From documentation: "String form paths are interpreted as UTF-8 character sequences identifying the absolute or relative filename. Relative paths will be resolved relative to the current working directory as determined by calling process.cwd()."

So in order to determine your working directory (i.e. where fs create files by default) call (works for me):

console.log(process.cwd());

Then if you would like to change your working directory, you can call (works for me as well):

process.chdir('path_to_new_directory');

Path can be relative or absolute.

This is also from documentation: "The process.chdir() method changes the current working directory of the Node.js process or throws an exception if doing so fails (for instance, if the specified directory does not exist)."

Upvotes: 0

ireshan pathirana
ireshan pathirana

Reputation: 443

try to use : __dirname instead of process.cwd()

const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, '/myFile.txt');
console.log(filePath);
const jsonString = JSON.stringify({ name: "kalo" })
fs.writeFile(filePath, jsonString, (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
});

And I would like to know why are you using 'filer' instead of default fs module?

fs module is native module that provides file handling in node js. so you don't need to install it specifically. This code perfectly worked and it prints absolute location of the file as well.Just run this code if it doesn't work, I think you should re install node js. I have updated the answer.You can also use fs.writeFileSync method as well.

Upvotes: 1

Related Questions