Retrieving files from Directory Node Js

node.js

node.js Problem Overview


I am using readDirSync to get the files from a Diretory. PLease find the code and error as following.

var fs = require('fs');
var files = fs.readdirSync('./application/models/');
for(var i in files) {
  var definition = require('../application/models/'+files[i]).Model;
  console.log('Model Loaded: ' + files[i]);
}

I am getting error for line number 2 . ENOENT, No such file or directory './application/models/' at Object.readdirSync (fs.js:376:18)

I have application/models on the same dir. I already checked for '/application/models/' and 'application/models/' but failed. I can see the same thing running on server.

Please help

Thanks

node.js Solutions


Solution 1 - node.js

If you are using relative path when calling readdirSync, make sure it is relative to process.cwd(). However, "require" should be relative to the current script.

For example, given the following structure

server.js (node process)
/lib/importer.js (the current script)
/lib/application/models/

you may need to write importer.js as:

var fs = require('fs');
var files = fs.readdirSync('./lib/application/models/');
for (var i in files) {
  var definition = require('./application/models/' + files[i]).Model;
  console.log('Model Loaded: ' + files[i]);
}

Solution 2 - node.js

Have you tried the following?

var files = fs.readdirSync(__dirname+'/application/models/');

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSharmajiView Question on Stackoverflow
Solution 1 - node.jsivan loireView Answer on Stackoverflow
Solution 2 - node.jsVan CodingView Answer on Stackoverflow