Cansado de sintaxe extra em seu Express app.js, ou quer mudar para CoffeeScript para seu código do lado do servidor? Experimente este pseudo-DSL para ver o tamanho:
run.js
coffee = require('coffee-script');
http = require('http');
app = require('./app');
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
app.coffee
express = require 'express'
_ = require 'underscore'
path = require 'path'
routes = require './routes'
user = require './routes/user'
module.exports = app = express()
do _.bind ->
@configure ->
@set('port', process.env.PORT || 3000)
@set('views', __dirname + '/views')
@set('view engine', 'jade')
@use(express.favicon())
@use(express.logger('dev'))
@use(express.bodyParser())
@use(express.methodOverride())
@use(@router)
@use(express.static(path.join(__dirname, 'public')))
@configure 'development', ->
@use(express.errorHandler())
@get('/', routes.index)
@get('/users', user.list)
, app
Cuidado com a indentação. O segundo argumento para bind
– express()
– é recuado uma vez, mas o conteúdo da função é recuado duas vezes.