我想做的是将以下内容添加到已运行coffeescript编写的服务器中

app.get '/test.js', (req, res) ->
    render coffee somecoffeefile.coffee

使用NodeJS,Express和Coffeescript可能会发生这种情况吗?

谢谢!

约瑟

最佳答案

好消息:Connect(以及Express,它扩展了Connect)已经作为插件附带了!没有足够的文件证明;实际上,在得知已存在类似内容之前,我曾写过类似的内容(connect-coffee)。

使用Express进行设置的方法如下:

# Notice the following code is coffescript
# You must add the parens for the app.use method to use in js
coffeeDir = __dirname + '/coffee'
publicDir = __dirname + '/public'
app.use express.compiler(src: coffeeDir, dest: publicDir, enable: ['coffeescript'])
app.use express.static(publicDir)

现在,例如,当请求http://yourapp/foo.js时,如果您的public目录中不存在这样的文件,则foo.coffee将自动编译,并且将生成结果的foo.js。请注意,在static之后设置compiler非常重要。

更新:从Connect 1.7开始,已删除compiler中间件。部分是因为这一点,另一部分是为了提供更类似于Rails 3.1的体验,我创建了一个名为connect-assets的新中间件。使用npm安装它,然后按如下所示进行设置:
app.use require('connect-assets')(directory)

其中directory是CoffeeScript文件所在的文件夹(默认为assets)。简单吧?尝试一下,让我知道您的想法。

关于node.js - NodeJS + CoffeeScript,根据请求渲染coffeescript编译的js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5195929/

10-12 00:26
查看更多