说起express框架,http://expressjs.com/这是官网,应该说来是nodejs的一个伟大的mvc框架,这个框架最有价值的地方,我认为就是路由控制系统,这个就有点像java struts2里的action,起到了controler的作用,是不是觉得有点意思,一个web程序里居然不用有java代码,不用有php代码,用js代码就可以实现很多复杂的功能,所以我们下面就看一下这个强大的框架。
第一步,安装express依赖包
使用命令行窗口,使用npm install命令来安装express安装包,可以把这个框架安装成全局的用npm install -g
npm install -g express
第二步,创建express工程
使用命令express ejs/jade 工程名,这里的ejs和jade是值得一些模板引擎,ejs挺简单的,但是jade得需要一些功夫了解实践,创建工程后,会产生一个package.json的文件,这个文件里面记录了一些如项目名称,版本号,还有一些依赖包的信息,我们可以修改这些依赖包的信息,并且通过npm install命令去更新这些依赖包。
第三步,引入velocity还有mongodb以及一些记录session的依赖包
正如上一步所说的,只需更改package.json文件,用命令行窗口进入到该项目文件夹,然后执行npm install即可下载这些依赖包,上一步中说express默认支持ejs还有jade的模板引擎,但是我们公司项目中都是用到velocity模板引擎,但是刚开始的时候我就在这里碰到了壁,搜遍了全网也没有找到一点关于express支持velocity模板引擎的信息,后来,我们公司老板扬哥给了我很大的帮助,他一句话点醒了做梦的我,nodejs是支持velocity的,首先要先下载安装velocity依赖包,安装方法同安装express,这是第一步,然后更改app.js中的代码,只需添加几行代码,首先引入velocity模块和fs模块(读取文件的模块)
var velocity = require('velocityjs') var fs = require('fs')
然后引入全新的模板引擎
app.engine('vm',function(path,options,fn){ var template = fs.readFileSync(path).toString(); var macros = { parse: function(file) { var template = fs.readFileSync(cwd + '/views/' + file).toString() return this.eval(template); } } try{ fn(null, velocity.render(template, options, macros)) }catch(err){ console.log(err); fn(err) } });
最后设置express的模板引擎为'vm'引擎就可以了
app.set('view engine', 'vm');
思路也非常简单,首先通过express的路由控制找到路径文件,然后通过fs模块读取该文件,最后通过velocity依赖程序解析内容,我的package.json文件如下:
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app" }, "dependencies": { "express": "3.0.0rc4", "velocityjs": "*", "connect": ">= 1.x", "connect-mongo": ">= 0.1.7", "mongodb": ">= 0.9.9" } }
express框架,velocity的依赖包和mongodb的依赖包全都下载好后,整体一个web工程的空架子就已经搭建好了,下一步我们就可以开始我们第一个最简单增删改查的例子了,这时候你可能有些糊涂了,没有关系,说实话,我当初刚开始的时候也挺迷糊了,做了一个增删改查的例子之后,就好多了,附件里面有app.js。