关于Express模块的学习

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

  1. Express有四个主要的特点:
    1.1 中间件。Express有一个中间件栈,这是一个高效的函数数组。
    1.2 路由。类似中间件,但只有当使用特定的HTTP方法访问一个指定的URL时,该函数才被调用。
    1.3 扩展(extensions)。Express扩展了request和response对象,向这些对象增加了新的方法和属性,以利用开发。
    1.4 视图(views)。使用视图,可以动态地渲染HTML。

  2. 中间件栈中的每个函数有三个参数:前两个参数是request和response(这是由Node给我们的)。

    第三个参数本身也是一个函数,通常叫做”next”。当next函数被调用时,Express将继续到栈中的下一个函数。

  3. Express带有一个唯一的内置中间件express.static。express.static是一个返回一个中间件函数的函数。它带有一个参数:

    用于存放静态文件的文件夹的路径。
    var staticPath = path.join(__dirname, “static”);
    app.use(express.static(staticPath));
    如果请求的文件存在于路径中,该中间件发送该文件;否则,它将调用next并继续栈中下一个中间件。

  4. 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

  5. 另外还有大量的中间件:

    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端口...")
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值