Express 3.0 与 4.0的特性改变
Express 3.0 | Express 4.0 |
---|---|
bodyParser | body-parser |
compress | compression |
cookieSession | cookie-session |
logger | morgan |
cookieParser | cookie-parser |
session | express-session |
favicon | static-favicon |
response-time | response-time |
error-handler | errorhandler |
method-override | method-override |
timeout | connect-timeout |
vhost | vhost |
csrf | csurf |
首先安装好NodeJS。
安装Express 4:
> npm install express -gd
其中选项-g表示全局安装,目标模块将会被安装到NODE_PATH的lib里面node_modules文件夹中,全局使用。-d选项表示一并安装依赖模块。没有-g选项的话会在当前目录(通常是项目目录)建立一个node_modules目录。
安装成功后,命令行会提示 npm info ok
express 4.0之后将命令工具分出来了(创建一个APP的工具),因此还需安装express-generator。没它创建不了应用程序。
> npm install -g express-generator #全局安装-g
> express -V # 检查express的版本
安装好以后,可以使用express的命令,创建项目了。
> express -e firstweb # 在当前目录下会创建firstweb目录
> cd firstweb # 进入项目目录
> npm install # 在项目目录中,下载依赖库来构建项目。
启动项目:
> npm start
至此,该WEB应用被启动了。
打开浏览器访问:http://localhost:3000/
Express4中引入了著名的debug模块,所以debug模式更方便的研究Node中的模块,其使用方法:https://www.npmjs.org/package/debug
使用DEBUG方式启动项目:
> DEBUG=firstweb ./bin/www # 用文本编辑器看看这个www文件的内容!
package.json文件
package.json用来声明项目基本信息和使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行npm install命令即可安装所需要的模块了。
{
"name": "first",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.15.1",
"cookie-parser": "~1.4.3",
"debug": "~2.2.0",
"ejs": "~2.4.1",
"express": "~4.13.4",
"morgan": "~1.7.0",
"serve-favicon": "~2.3.0"
}
}
里面的scripts属性,是用于定义操作命令的,可以非常方便的增加启动命令,比如默认的start,用npm start代表执行node ./bin/www命令。
比如,编写一个查看文章的功能:添加一个article的路由句柄。
在routes目录下面新建一个article.js文件,来具体实现业务罗辑。
url为http://localhost:3000/article/id/xxxx
每个文章有一个id,一串数字,返回json数据。
article.js文件内容如下:
var express = require('express');
var router = express.Router();
/* GET data listing. */
router.get('/', function(req, res, next) {
res.send('respond with a article');
});
router.get(/^\/id\/(\d+)$/, function(req, res, next) {
var article_id = req.params[0];
res.send("article id is : " + article_id);
});
module.exports = router;
以上代码完成了路由句柄,之后,将它挂在路由路径上:
在app.js添加以下代码
var article = require('./routes/article.js');
app.use('/article', article);
以上的项目是用express-generator工具生成的。
也可以不用他,自己从零开始写。
程序和上面一样,随意放到任何目录都可以,但是要注意一点,需要设置NODE_PATH这个环境变量,并指向安装的扩展包的根目录。比如,WINDOWS下默认是:C:\Users\fd\AppData\Roaming\npm\node_modules
如果不指定这个目录,那么就需要在项目目录下再执行一次本地安装:npm install express
否则,会报错:Cannot find module ‘express’
http://blog.fens.me/nodejs-express4/