从目录节点Js中检索文件

时间:2011-09-13 11:48:09

标签: node.js

我正在使用readDirSync从Diretory获取文件。请查找以下代码和错误。

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]);
}

我收到第2行的错误。 ENOENT,在Object.readdirSync上没有这样的文件或目录'./application/models/'(fs.js:376:18)

我在同一个目录上有应用程序/模型。我已经检查了'/ application / models /'和 'application / models /'但失败了。我可以在服务器上看到同样的事情。

请帮忙

由于

2 个答案:

答案 0 :(得分:45)

如果您在调用readdirSync时使用相对路径,请确保它相对于process.cwd()。 但是,“require”应该与当前脚本相关。

例如,给定以下结构

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

您可能需要将 importer.js 写为:

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]);
}

答案 1 :(得分:8)

您是否尝试过以下操作?

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