Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
Express有四个主要的特点:
1.1 中间件。Express有一个中间件栈,这是一个高效的函数数组。
1.2 路由。类似中间件,但只有当使用特定的HTTP方法访问一个指定的URL时,该函数才被调用。
1.3 扩展(extensions)。Express扩展了request和response对象,向这些对象增加了新的方法和属性,以利用开发。
1.4 视图(views)。使用视图,可以动态地渲染HTML。中间件栈中的每个函数有三个参数:前两个参数是request和response(这是由Node给我们的)。
第三个参数本身也是一个函数,通常叫做”next”。当next函数被调用时,Express将继续到栈中的下一个函数。
Express带有一个唯一的内置中间件express.static。express.static是一个返回一个中间件函数的函数。它带有一个参数:
用于存放静态文件的文件夹的路径。
var staticPath = path.join(__dirname, “static”);
app.use(express.static(staticPath));
如果请求的文件存在于路径中,该中间件发送该文件;否则,它将调用next并继续栈中下一个中间件。Express团队维护了大量的中间件模块:
4.1 body-parser:用于解析请求体。例如,当用户提交一个表单时。https://github.com/expressjs/body-parser.
4.2 cookie-parser:用于解析来自用户的cookies。它需要与另外的express支持的组件成对使用,如express-session。https://github.com/expressjs/cookie-session
4.3 Compression:用于压缩response以节约字节数。https://github.com/expressjs/compression另外还有大量的中间件:
connect-assets:编译并压缩项目的CSS和JavaScript资源。它还可以与CSS预处理器如SASS、SCSS、LESS和Stylus一起使用。https://github.com/adunkman/connect-assets
日志模块:morgan
安装:$ npm –registry=http://registry.npm.taobao.org/ install morgan
morgan url: https://github.com/expressjs/morgan
var http = require("http");
var express = require("express"); // 引入express框架
var morgan = require("morgan");
var app = express(); // 使用express框架拿到函数栈(数组)
app.use(express.static("public"))// 读取静态资源
app.use(morgan("combined")) // 记录请求日志信息
//中间件
app.use(function(request,response,next){
console.log("第一个中间件!");
console.log("request.url:"+request.url);
next();
});
app.use(function(request,response,next){
console.log("第二个中间件!");
console.log("request.url:"+request.url);
next();
});
app.use(function(request,response,next){
console.log("第三个中间件!");
console.log("request.url:"+request.url);
response.write("请求结束");
response.end();
});
var server = http.createServer(app); // 创建web服务器
server.listen(3000,function(){ // 指定web服务器的运行端口
console.log("服务器运行在3000端口...")
})