Tùy thuộc vào việc đây là mã phía máy khách hay phía máy chủ, có hai cách tiếp cận hơi khác nhau.
Client-side: Ở đây chúng ta đính kèm những điều mà nên có sẵn trên các tập tin để không gian tên toàn cầu (window
) như sau:
class window.ChatService
constructor: (@io) ->
Sau đó, trong tập tin khác cả ChatService
và window.ChatService
sẽ cho phép truy cập vào các lớp .
Phía máy chủ: Ở đây chúng tôi phải sử dụng exports
và require
. Trong tập tin ChatService.coffee
, bạn sẽ phải như sau:
class exports.ChatService
constructor: (@io) ->
Sau đó, để có được vào nó từ tập tin khác, bạn có thể sử dụng:
ChatService = require('ChatService.coffee').ChatService
Lưu ý: Nếu có nhiều lớp học mà bạn nhận được từ ChatService.coffee, đây là một nơi dict CoffeeScript của giải nén thực sự tỏa sáng, chẳng hạn như:
{ChatService, OtherService} = require('ChatService.coffee')
Cả hai: Về cơ bản, chúng tôi chọn có nên chạy mã phía máy chủ hoặc phía máy khách dựa trên môi trường chúng tôi đang sử dụng hay không.Một cách phổ biến để làm điều đó:
class ChatService
constructor: (@io) ->
if typeof module != "undefined" && module.exports
#On a server
exports.ChatService = ChatService
else
#On a client
window.ChatService = ChatService
Để có được nó:
if typeof module != "undefined" && module.exports
#On a server
ChatService = require("ChatService.coffee").ChatService
else
#On a client
ChatService = window.ChatService
Các khác khoản của khối thứ hai có thể được bỏ qua, kể từ khi ChatService
đã đề cập đến các tài liệu tham khảo kèm theo window
.
Nếu bạn đang đi để xác định rất nhiều lớp trong tập tin này, nó có thể được dễ dàng hơn để định nghĩa chúng như:
self = {}
class self.ChatService
Và sau đó đính kèm chúng như module.exports = self
trên máy chủ và _.extend(window, self)
trên máy khách (thay thế _.extend
bằng một chức năng khác extend
khi thích hợp).
Nếu bạn đang sử dụng Rails, bạn phải đảm bảo rằng bất kỳ tập tin coffeescript phụ thuộc nào được gọi là * trước * bạn thử và tham khảo nó. Khi bạn đặt chỉ thị "yêu cầu" trong các tệp thực sự cần đến các tệp khác, bạn sẽ có quyền truy cập vào các biến, v.v. –