2011-12-09 11 views
7

私は経由で直接私の急行サーバを起動できるようにしたい:ファイルが実行ファイルである場合にのみnode.jsにいくつかのコードを実行させるにはどうすればよいですか?

$ node app.js 

しかし、私はまた、そのファイルを必要とすることにしたい、そしてそれはアプリのインスタンスを返しますが、実際にサーバを起動していない持っています。その後、私はいくつかのオプションでそれを後で開始することができます。

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

私は基本的にこのルビースニペットに相当するものを探していますが、node.js.

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

イディオムがありますか?それはnullまたはundefinedなら

答えて

8

チェック

module.parent 

は、あなたがメインファイルです。そうでない場合は、requireになりました。あなたのmodule.parentは、モジュールのmoduleオブジェクトであり、requiredです。

+1

パーフェクト。また、もし私がそうであれば、あなたがcoffeescriptでタグ付けされた質問を攻撃するスピードは驚異的です。あなたはどうやってそれをしますか? –

+1

驚くほど昔ながらの方法で:私はタブ内にhttp://stackoverflow.com/tags/coffeescriptを開いたままにしておき、毎時コンピュータにいるので、私はリフレッシュしました。 –

+0

これは最近変わったのでしょうか?今日の 'node'は' module.parent'を 'null'に割り当てます。そのような場合は' undefined'ではありません。 –

関連する問題