Lỗi errno trong biến fs.lstat có nghĩa là gì? [đóng cửa]


0

tôi đã viết mã mẫu này để sao chép lỗi Lstat. var fs=require("fs"); var path="/home/unixroot/Desktop/zookeeper1"; fs.lstat(path,function(err,stats){ if(err) { if(err.code==="ENOENT") { fs.exists(path,function(exist) { if(!exist) console.log("Path does not exists"); }); } console.log(err); } else { console.log(stats); } }); Bây giờ tôi đang cung cấp đường dẫn không tồn tại và khi tôi in biến err. nó cho thấy như thế này { [Error: ENOENT, lstat '/home/unixroot/Desktop/zookeeper1'] errno: 34, code: 'ENOENT', path: '/home/unixroot/Desktop/zookeeper1' } Tôi không chắc chắn về errno là 34 trong trường hợp này. Câu hỏi của tôi là nó có nghĩa là gì và có bất kỳ danh sách những lỗi đó để tìm ra nguyên nhân chính xác của lỗi này.

Câu trả lời:


0

errnocó nghĩa là "số lỗi" và chỉ là số mã được gán cho một lỗi cụ thể trên các hệ thống tương tự Unix. Nói chung, phiên bản tượng trưng của mã là hữu ích hơn.

Trong C, bạn sẽ sử dụng strerrorhàm để chuyển đổi mã thành một mô tả thực tế. Có vẻ như node.js không có hàm như vậy, nhưng dường như có một số triển khai của người dùng:

Bạn cũng có thể kiểm tra trang chủ lstathoặc tham khảo phần hướng dẫn sử dụng glibc về mã lỗi .


Cảm ơn rất nhiều vì đã đăng một bình luận @jjlin. Tôi sẽ xem qua các liên kết. Ngoài ra, tôi muốn hỏi một câu hỏi ngớ ngẩn, liệu lstat của linux hay unix và nodejs fs.lstat có hoạt động tương tự và trả về các lỗi giống nhau không? bởi vì nếu có, nó sẽ giải quyết vấn đề của tôi.
dùng3342498

Đúng, nếu nó được đặt tên giống nhau, gần như chắc chắn sẽ dựa vào hệ điều hành và thư viện cơ bản để thực hiện công việc, ít nhất là trên các hệ thống giống Unix.
jjlin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.