0、介绍
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
-
可以设置中间件来响应 HTTP 请求。
-
定义了路由表用于执行不同的 HTTP 请求动作。
-
可以通过向模板传递参数来动态渲染 HTML 页面。
一、安装
1.1 简单安装方法一:
$ cnpm install express --save
以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:
-
body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
-
cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
-
multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
$ cnpm install body-parser --save $ cnpm install cookie-parser --save $ cnpm install multer --save
安装完后,我们可以查看下 express 使用的版本号:
$ cnpm list express /data/www/node └── express@4.15.2 -> /Users/tianqixin/www/node/node_modules/.4.15.2@express
1.2 安装模式二:
在确认已经安装了node之后(下载), 在你的机器上创建一个目录,让我们来开始你的第一个应用程序吧
$ mkdir hello-world
在这个目录中你首先得定义一下你的应用程序“包”文件,它和其它的node程序包是一样的。 你得在这个目录中创建一个package.json文件,在里面express作为一个依赖。 你也可以使用 npm info express version
来获取express最新的版本号, 最好使用最新的版本号而不是下面的3.x,这样新出的功能就不会让你感觉到奇怪了。
{
"name": "hello-world",
"description": "hello world test app",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.x"
}
}
现在package.json文件已经准备好了,使用npm(1)
安装依赖,这里的依赖仅仅是Express。
$ npm install
当npm完成后,Express 3.x 和它的依赖就安装到你的 ./node_modules 目录里了。 你可以通过 npm ls
来确认一下,它会把Express 和它的依赖展示成下面的树状结构。
$ npm ls
hello-world@0.0.1 /private/tmp
└─┬ express@3.0.0beta7
├── commander@0.6.1
├─┬ connect@2.3.9
│ ├── bytes@0.1.0
│ ├── cookie@0.0.4
│ ├── crc@0.2.0
│ ├── formidable@1.0.11
│ └── qs@0.4.2
├── cookie@0.0.3
├── debug@0.7.0
├── fresh@0.1.0
├── methods@0.0.1
├── mkdirp@0.3.3
├── range-parser@0.0.4
├─┬ response-send@0.0.1
│ └── crc@0.2.0
└─┬ send@0.0.3
└── mime@1.2.6
现在我们来写真正的代码了!创建一个名为app.js 或者 server.js的文件,叫什么看你个人喜好了。 载入express 然后使用代码 express()
创建一个新的应用程序:
var express = require('express');
var app = express();
在这个应用程序实例里,你可以通过 app.VERB()
定义路由,下面的例子是"GET /"返回 "Hello World" 字符串。 req
和 res
对象是和node原生提供给你的一致的,你也可以执行 res.pipe()
, req.on('data', callback)
等任何事情在没有Express的情况下可以做的事情。
Express 给这些对象加了一个封装好的方法,比如 res.send()
, 它会帮你设置Content-Length:
app.get('/hello.txt', function(req, res){
res.send('Hello World');
});
现在我们通过执行 app.listen()
来绑定并监听连接。 它接受的参数和node