1
//Trying to convert zis javascript...
http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

//To zis coffee-script
http.createServer(app).listen app.get('port'), (x) ->
  console.log "Express server listening on port " + app.get 'port'

私の質問は: app.get('port') の値を "listen" の最初の引数として指定するときに、括弧を使用する必要がありますか? 括弧を使用せずにスニペットを記述する場合:

http.createServer(app).listen app.get'port' (x) ->
      console.log "Express server listening on port " + app.get 'port'

app.get の 2 番目の引数としてコールバック関数を渡しませんか?

4

1 に答える 1

2

要するに、変換は次のようになります。

http.createServer(app).listen app.get('port'), ->
    console.log "Express server listening on port #{app.get 'port'}"

もう少し説明:

関数が引数を取らない場合を除き、CoffeeScript の括弧はオプションです。したがって、2 つの引数を取る関数を呼び出す場合、次の 2 つは同等です。

Math.max(5, 12)
Math.max 5, 12

のようMath.maxhttp.createServer(app).listen、ポート (らしい) とコールバック関数の 2 つの引数を取るようです。

このように簡単に書くことができ、もう少し明確になるかもしれません。

serverListeningCallback = ->
    console.log "Express server listening on port #{app.get 'port'}"

http.createServer(app).listen app.get('port'), serverListeningCallback

一番上の解決策をお勧めしますが、上記は解決策をより明確にするかもしれません。


PS: CoffeeScript の文字列補間に注意してください。以下は、CoffeeScript で同等です。

"My favorite number is " + Math.random()
"My favorite number is #{Math.random}"
于 2013-01-23T07:43:10.240 に答える