2011-12-09 15 views
7

Tôi muốn để có thể khởi động máy chủ nhanh của tôi trực tiếp thông qua:Làm cách nào để làm cho node.js thực thi một số mã chỉ khi tệp của tôi là tệp đang chạy?

$ node app.js 

Nhưng tôi cũng muốn có thể yêu cầu tập tin đó, và có nó trả lại ví dụ ứng dụng nhưng thực sự không khởi động server. Sau đó, tôi có thể bắt đầu sau đó với một số tùy chọn.

app = require './app' 
app.listen options.someCustomPort 

Về cơ bản, tôi đang tìm kiếm tương đương đoạn mã ruby ​​này, nhưng trong node.js.

if __FILE__ == $0 
    app.listen options[:some_custom_port] 
end 

Có thành ngữ nào cho điều này không?

Trả lời

8

Kiểm tra

module.parent 

Nếu đó là null hoặc undefined, bạn là tập tin chính. Nếu không, bạn đã là require d. module.parent của bạn là đối tượng module của mô-đun require d bạn.

+1

Hoàn hảo. Ngoài ra, nếu tôi có thể, tốc độ mà tại đó bạn tấn công bất kỳ câu hỏi được gắn thẻ coffeescript là đáng kinh ngạc. Làm thế nào để bạn làm điều đó? –

+1

Một cách đáng kinh ngạc: tôi giữ http://stackoverflow.com/tags/coffeescript mở trong một tab, và mỗi giờ hoặc lâu hơn tôi đang ở máy tính của mình, tôi nhấn làm mới. –

+0

Rất tiếc, điều này có thay đổi gần đây không? Nút 'ngày hôm nay' gán' module.parent' thành 'null', không phải' undefined' trong các trường hợp như vậy –

Các vấn đề liên quan