2011-12-09 9 views
7

Chcę móc uruchomić mój wyraźnej serwera bezpośrednio poprzez:Jak zrobić, aby node.js wykonywał jakiś kod, tylko jeśli mój plik jest plikiem uruchomionym?

$ node app.js 

Ale chcę też móc wymagać ten plik i go powrócić instancję aplikacji, ale faktycznie nie uruchomić serwer. Potem mogę zacząć później z niektórymi opcjami.

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

Po prostu szukam odpowiednika tego fragmentu ruby, ale w node.js.

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

Czy jest jakiś idiom?

Odpowiedz

8

Sprawdź

module.parent 

Jeśli to null lub undefined, jesteś główny plik. Jeśli nie, jesteś require d. Twój obiekt module.parent jest obiektem modułu, który jest .

+1

Idealny. Ponadto, jeśli mogę, szybkość ataku na pytania oznaczone tagiem coffeescript jest oszałamiająca. Jak to robisz? –

+1

W zadziwiająco staroświecki sposób: trzymam http://stackoverflow.com/tags/coffeescript otwarty w zakładce, i co godzinę lub tak, że jestem na moim komputerze, odświeżam. –

+0

Dziwne, czy to mogło ostatnio się zmienić? Dzisiejszy 'węzeł' przypisuje' module.parent' do 'null', a nie' undefined' w takich przypadkach –

Powiązane problemy