从目录节点Js中检索文件

Sha*_*aji 44 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]);
}
Run Code Online (Sandbox Code Playgroud)

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

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

请帮忙

谢谢

小智 53

如果您在呼叫时使用相对路径readdirSync,请确保它是相对的process.cwd().但是,"require"应该与当前脚本相关.

例如,给出以下结构

server.js (node process)
/lib/importer.js (the current script)
/lib/application/models/
Run Code Online (Sandbox Code Playgroud)

您可能需要将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]);
}
Run Code Online (Sandbox Code Playgroud)


Van*_*ing 15

你试过以下吗?

var files = fs.readdirSync(__dirname+'/application/models/');
Run Code Online (Sandbox Code Playgroud)