Tôi có tệp Node.js được gọi là "server.js".Thực thi tệp Node.js từ bên ngoài đường dẫn tệp ngắt thư mục
Trong kịch bản, tôi mở một số tập tin sử dụng cái gì đó như:
var certPem = fs.readFileSync('cert_and_key_dev.pem', encoding='ascii');
Sử dụng vỏ bash, nếu tôi cd vào thư mục chứa server.js là, và chạy lệnh:
[mybashshell] $ node server.js
Nó hoạt động, tôi đã không có lỗi. Máy chủ khởi chạy và chạy.
Bây giờ khi tôi cd OUT OF thư mục chứa tệp server.js, hãy chạy lại lệnh shell một lần nữa để khởi chạy máy chủ của tôi.
Nó phàn nàn về đường dẫn tệp của tôi tới "cert_and_key_dev.pem" bị hỏng.
Tôi đã không mong đợi điều gì đó như thế này xảy ra. Tôi mặc dù đường dẫn được sử dụng trong tập tin kịch bản đang được thực hiện nên liên quan đến tập tin kịch bản, không phải đến vị trí mà tôi thực hiện lệnh bash shell của tôi.
Bất kỳ ý tưởng nào?
Có bất kỳ lợi ích nào giữa phương pháp này so với phương pháp được đưa ra bởi chbrown không? Tôi tò mò về cách nào là thích hợp hơn. – Zhang
Nó thực sự phụ thuộc vào mục đích. Nếu bạn đang chạy nhiều hơn một "máy chủ", tôi sẽ đề nghị thay đổi thành '__dirname'. Ví dụ: nếu bạn đang chạy tập lệnh tải lên thư mục, tôi sẽ đề xuất sử dụng mã của chbrown. Bạn phải cân nhắc tần suất bạn dự định sử dụng đường dẫn thư mục làm việc hiện tại trên đường dẫn thư mục của tập lệnh hiện tại. –