2011-09-13 29 views
28

Tôi đang sử dụng readDirSync để lấy các tệp từ Diretory. Hãy tìm mã và lỗi như sau.Lấy các tệp từ Thư mục Node Js

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

Tôi gặp lỗi đối với dòng số 2. ENOENT, Không có tệp hoặc thư mục './application/models/' nào tại Object.readdirSync (fs.js: 376: 18)

Tôi có ứng dụng/mô hình trên cùng một thư mục. Tôi đã kiểm tra '/ application/models /' và 'application/models /' nhưng không thành công. Tôi có thể thấy cùng một thứ đang chạy trên máy chủ.

Xin giúp

Cảm ơn

+0

Các bạn đã thử 'process.chdir (__ dirname) ' – Raynos

Trả lời

31

Nếu bạn đang sử dụng đường dẫn tương đối khi gọi readdirSync, hãy đảm bảo nó tương ứng với process.cwd(). Tuy nhiên, "yêu cầu" phải liên quan đến tập lệnh hiện tại.

Ví dụ, do cấu tạo sau

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

bạn có thể cần phải viết importer.js như:

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

Bạn đã thử những điều sau đây?

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

vâng Tôi đã thử như vậy. nó cũng đã cho tôi lỗi .. Không có tập tin hoặc thư mục '/ home/vikas/project-admin/bao gồm/application/models /' – Sharmaji

+0

Nó có thể là do các điều khoản? –

Các vấn đề liên quan