登录
注册
node.js 学习社区
MVC模版:CoffeeScript, Node.js, MySQL 和 Express.js

银古

2014-12-17 00:13

我做了一个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数据库:

  • 编辑 coffeeserver/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

原文引自:http://cnodejs.org/topic/4f372d5bfc6094b56d04da85

回复 · 0

发表回复

你可以在回复中 @ 其他人