- Giả sử tôi có một tệp trong thư mục gốc của dự án của tôi có tên là "file.xml"
-Giả sử tôi có một tệp thử nghiệm trong các bài kiểm tra / được gọi là "test.js" và nó có
const file = fs.readFileSync("../file.xml");
Nếu bây giờ tôi chạy node ./tests/test.jstừ thư mục gốc của dự án của mình, nó nói ../file.xml không tồn tại. Nếu tôi chạy cùng một lệnh từ trong thư mục kiểm tra, thì nó hoạt động.
Có vẻ như fs.readFileSync liên quan đến thư mục nơi tập lệnh được gọi từ đó, thay vì nơi tập lệnh thực sự ở đó. Nếu tôi đã viết fs.readFileSync("./file.xml")trong test.js, nó sẽ trông khó hiểu hơn và không nhất quán với các đường dẫn tương đối trong câu lệnh request là tệp tương đối.
Tại sao thế này?
Làm cách nào để tránh phải viết lại các đường dẫn trong fs.readFileSync của tôi?
__dirnamekhông nhất thiết giống như thư mục làm việc hiện tại, nhưngfs.readFileSync()sử dụng thư mục làm việc hiện tại. Thư mục làm việc hiện tại có thể được đặt thành bất kỳ thứ gì khi bạn khởi chạy nút.