如何用Node.js正确设置Coffeescript
我试图用下面的方式定义一些使用Coffeescript的节点路由:
我的app.js文件:
/** * Module dependencies. */ require('coffee-script'); var express = require('express'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } require('./routes')(app); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });
我的routes.coffee文件(位于与应用程序相同的级别):
routes = (app) -> app.get '/login', (req,res) -> res.render "views/login", title: 'Login' stylesheet: 'login' module.exports = routes
我的问题是:
1当我尝试运行节点应用程序 – 我得到:
module.js:340 throw err; ^ Error: Cannot find module './routes'
如果我明确指定.coffee后缀:require('./ routes.coffee')(app); – 我得到:
routes = (app) -> ^ SyntaxError: Unexpected token >
请问这样做的正确方法是什么?
在CoffeeScript 1.7中,行require('coffee-script')
不再允许您要求CoffeeScript文件。 相反,你需要:
require('coffee-script/register')
要么
require('coffee-script').register()
请参阅文档 。