node.js - NodeJS + CoffeeScript,根据要求渲染 CoffeeScript 编译的 js

标签 node.js coffeescript express

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

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

NodeJS、Express 和 Coffeescript 可以实现类似的功能吗?

谢谢!

何塞

最佳答案

好消息:Connect(以及扩展 Connect 的 Express)已经作为插件提供!它没有很好的记录;事实上,在我被告知这样的东西已经存在之前,我自己也写过类似的东西(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/

相关文章:

javascript - CoffeeScript/Backbone/Marionette - 教程示例转换和范围界定问题

javascript - jQuery UI 日期选择器使移动设备出现问题

javascript - 使用 Multer 上传文件并在解析和上传到数据库之前将其短暂存储在内存中

javascript - Express 不执行任何操作,只发送 HTML 文件

node.js - 使用 Hapi.JS Joi 模块在 Express.JS 应用程序中验证和清理输入之间的区别?

node.js - npm 启动时 webpack-dev-server 错误

node.js - 使用 REST 进行环回电子邮件验证(其中配置了所需的 verifyOptions)

javascript - 在 Svelte 中每 x 次迭代关闭一个元素

javascript - 前端的 Meteor,后端的 Express (NodeJS)

javascript - 解除绑定(bind)主干 View 事件