2011-12-09 14 views
7

quiero ser capaz de iniciar mi servidor expresa directamente a través de:¿Cómo hago que node.js ejecute algún código solo si mi archivo es el archivo en ejecución?

$ node app.js 

Pero también quiero poder exigir ese archivo, y tienen que devolver la instancia aplicación, pero en realidad se inicia el servidor. Entonces puedo comenzar más tarde con algunas opciones.

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

Básicamente estoy buscando el equivalente de este fragmento de rubí, pero en node.js.

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

¿Hay un idioma para esto?

Respuesta

8

Comprobar

module.parent 

Si se trata de null o undefined, usted es el archivo principal. Si no, has estado require d. Su module.parent es el objeto module del módulo que require d usted.

+1

Perfecto. Además, si puedo, la velocidad a la que atacas cualquier pregunta etiquetada coffeescript es asombrosa. ¿Cómo haces eso? –

+1

De una manera asombrosamente anticuada: mantengo http://stackoverflow.com/tags/coffeescript abierto en una pestaña, y cada hora más o menos que estoy en mi computadora, pulso actualizar. –

+0

Extraño, ¿podría haber cambiado esto recientemente? El 'nodo' de hoy asigna' module.parent' a 'null', no' undefined' en tales casos –

Cuestiones relacionadas