express.js是nodejs的一个MVC开发框架,而且支持jade等多种模板。下面简单来讲说express的安装和app.js文件的配置,而后在从此的教程中一步一步使用express.js搭建个聊天室。javascript
安装express.jscss
若是你安装了npm,安装变得很简单,只须要在终端中运行下面的代码便可:java
-g表明安装到NODE_PATH的lib里面,而-d表明把相依性套件也一块儿安装。若是沒有-g的话会安装目前所在的目录(会创建一个node_modules的文件夹),你能够透过如下指令来比较二者的不一样:node
若是没有npm,那么我可使用github来git下来最新的express。
好了,如今你能够经过express testapp来创建express实例。如下是示例:git
这样就创建了一个testapp的nodejs应用,而app.js是默认的应用主js。下面来详细的说说app.js中的各项配置。github
引入模块
express
require()是node.js提供的函数,可让你引入其余模块以调用模块的函数和变量,默认下node.js会在$NODE_PATH和目前js所在目录下的node_modules文件夹下去寻找模块。require也能够用来载入本身写的模块哦~这样涉及到node.js的模块机制,后面有机会就在介绍。npm
第二行的express.createServer()就是在创建server,而中间的module.exports也是涉及到node.js的模块机制,之后再说。服务器
express的app.js的详细配置说明app
express.js继承自connect模块,因此若是你的node_modules文件夹下没有connect模块也是不行的。
设置views路径和模板
咱们再来看下面两行:
上面两行是设置views文件夹,即模板文件夹,__dirname是node.js里面的全局变量,即取得执行的js所在的路径,另外__filename是目前执行的js文件名。因此,app.set(‘views', __dirname + ‘/views');是设置views的文件夹。
而app.set('view engine', 'jade');是设置express.js所使用的render engine。除了Jade以外,express.js还支持EJS(embedded javascript)、Haml、CoffeScript和jQuery template等js模板。
app.use配置
express.bodyParser()是Connect內建的middleware,设置此处能够将client提交过来的post请求放入request.body中。
express.methodOverride()也是Connect內建的,能够协助处理POST请求假装PUT、DELETE和其余HTTP methods。
app.router()是route requests,但express.js的官方文件是这句无关紧要,而且通过测试还真的是这样,不过仍是写上吧。
express.static()也是一个Connect內建的middleware来处理静态的requests,例如css、js、img文件等。因此static()里面指定的文件夹中的文件会直接做为静态资源吐出来。
app.configure设置
express.errorHandler()是Connect內建的middleware来協助處理例外。這裡也揭露了app.configure()的令一个用法,第一个參數是node.js的環境設定,如此我們就能够設定在不一样的執行環境使用不一样程度的dump。PS:node.js是透過NODE_ENV這个環境變數来取得環境設定,e.g.:在命令列,NODE_ENV=production node app.js就能够進入production環境。
路由和request的处理
ok,下面是nodejs处理request的内容:
上面的代码意思是,get请求根目录则调用views文件夹中的index模板,而且传入参数title为“Express”,这个title就能够在模板文件中直接使用。
在express中要处理post请求,须要使用app.post()。以下面的代码:
前面咱们提到了req.body是express.bodyParser()把POST参数处理后的结果。
另外除了get和post方法,还有app.all()意思就是全部的请求处理。
添加listen,启动nodejs服务器