我正在使用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 /'但失败了。我可以在服务器上看到同样的事情。
请帮忙
由于
答案 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/');