Theory:Gợi ý để đối phó với `exports` trong Node.js
Một trong những điều mà kháng cáo cho tôi về Node.js đang sử dụng nó như một công cụ dòng lệnh.
Về lý thuyết, tôi có thể viết thư viện bằng Javascript và đặt chúng trong thư mục ~/.node_libraries
của mình, sau đó tôi có thể sử dụng lại các thư viện đó. Ví dụ:
Ví dụ: tôi có text.js trong ~/.node_libraries
và có nhiều chức năng liên quan đến văn bản tôi sử dụng nhiều lần (depunctuate()
, tokenize_text()
, những thứ tương tự).
Vẻ đẹp của việc này là tôi có thể sử dụng cùng một tệp text.js
với các dòng lệnh và phía máy chủ của tôi. Ngay bây giờ tôi đang làm tất cả các công cụ xử lý văn bản với Python, nhưng tôi muốn chỉ dính vào một ngôn ngữ.
Thực hành:
AFAICT, để tạo ra một mô-đun Node.js, tôi phải đính kèm tất cả mọi thứ mà tôi muốn có sẵn cho exports
hoặc this
. Tức là, trong text.js
, tôi phải làm:
exports.depunctuate = depunctuate
hoặc
this.depunctuate = depunctuate
Nếu tôi sử dụng exports
, tôi có vấn đề với việc sử dụng các thư viện server-side à la:
<script src=text.js></script>
bởi vì sau đó tôi nhận được xuất không được xác định lỗi.
Nếu tôi sử dụng this
, tôi tránh lỗi, nhưng mọi thứ tôi xuất kết thúc đều được đính kèm với đối tượng cửa sổ.
Có cách nào để tôi có thể thiết lập các thư viện này để tránh cả hai vấn đề này? Ví dụ, có một số cách tôi có thể bọc xuất khẩu của exports
để var sẽ được rõ ràng cho nút, nhưng không phải khi nó được sử dụng trong một tập tin Javascript đồng bằng trên một máy chủ?
Điều đó đã xảy ra! Gotta yêu Stackoverflow ... BTW, tại sao tôi không thể nói 'if (export)'? –
Đợi đã, trong suy nghĩ thứ hai, tôi vẫn có thể truy cập vào 'window.depunctuate'. –