MVC模版:CoffeeScript, Node.js, MySQL 和 Express.js
发布于 12 年前 作者 zhangxi 9779 次浏览 最后一次编辑是 8 年前

我做了一个mvc框架的模版,基于Express.js的,代码用CoffeeScript写,然后会自动编译成JavaScript。我做这个东西是希望它就像完形填空一样,想做web app的人不用写太多代码,把制定的内容填到指定的空白就可以了。

用到的一些东西:

  • CoffeeScript:号称是“更合理的JavaScript”。就是一种脚本语言,写完了可以逐行编译成JavaScript。
  • Express.js:Node,js上最火的web框架
  • CoffeeKup:基于CoffeeScript的模版引擎。Express.js需要一个模版引擎来渲染出html文件。
  • async:node.js的一个插件,用来执行同步代码。(node本身是异步的)

能实现什么功能呢:

  • 能做一个web app
  • 能连MySQL数据库
  • 能轻松做ajax的API

安装

代码放到了GitHub上,本身是一个例子,我尽量多做了注释帮助大伙理解。下载代码:

git clone https://github.com/xizhang/coffee-mvc

运行:

  • 打开一个终端,运行:“cake watch”。这是实时监视CoffeeScript代码,把它编译成JavaScript
  • 打开另外一个终端,运行:“node server.js”。

设置数据库参数。我例子里的是MySQL数据库:

  • 编辑 coffee_server/config.coffee 设置带”DB_”的参数
  • 导入db_create.sql

说明

模版里大部分文件是不用动的,具体请看我这份洋文说明: http://coffeemvc.appinmotion.com/guide

如果不了解mvc或者node.js是啥,先百度一下咯。简单说明一下其他的:

  • 如果你想添加一个页面,就把controller和view分别添到 coffee_server/controller和coffee_view目录。
  • 每个method是controller里面的一个函数。当计算完毕后,调用那个叫render的回调函数,就可以渲染页面了。——你也可以选择不渲染页面,只发送数据。这时候它就会变成一个Web Service。
  • 静态文件放在file_client的文件夹里,比如图像啊,css啥的。

结论

其实呢,我觉着MVC什么的可能并不适合Node.js。因为Node的本质和长处是异步处理,所以必须借助async之类的模块才能做同步的事情,看那个example controller就知道了,很麻烦。其次呢,你们觉着CoffeeScript真能提高效率吗?反正喜欢和不喜欢的人都有。

总之,反正这个模版我写出来了,想用的人就试试吧。

我的博客: http://chifan.appinmotion.com/?p=1301

4 回复

开发阶段,我都是直接 coffee app.coffee 或nodemon app.coffee

不把coffeescript 编译成javascript

这。。。这么长时间以来,我完全不知道有这个功能啊。这就是和别人交流的必要性吧哎。

我用这个来监视文件改动,自动重新编译 coffee --watch --compile .

是啊,可以从中获知别人的经验

回到顶部