今日份的Node.js已就位—Express框架(05)

本文介绍了Express框架,它是简洁灵活的Node.js Web应用框架,可快速搭建完整功能网站。阐述了其核心特性,详细解析了利用该框架搭建服务的代码,包括app.get和app.use的使用及区别,还给出了测试结果和匹配规则。

目录

今日份的Node.js已就位—简介(01)

今日份的Node.js已就位—Http模块(02)

今日份的Node.js已就位—自定义模块(03)

今日份的Node.js已就位—实现C/S通信(04)

今日份的Node.js已就位—Express框架(05)

前沿:

Express框架是一个简洁而灵活的 node.js Web应用框架,其也属于一个模块,安装方式和之前相同,通过npm install express即可安装,框架的安装目录默认都是在应用目录下的node_modules目录下,通过Express框架可以快速地搭建一个完整功能的网站。

Express 框架核心特性:

  • 可以设置中间件来响应 HTTP 请求。

  • 定义了路由表用于执行不同的 HTTP 请求动作。

  • 可以通过向模板传递参数来动态渲染 HTML 页面。

利用Expess框架搭建一个服务:

var express = require("express");
var app = express();

var server = app.listen(8888, "127.0.0.1", function() {
    console.log("listen host:" + server.address().address + "\nport:" + server.address().port);
});

代码解析:

  1. 首先申请使用express模块
  2. 调用express()会返回一个function(),赋值给app后其会处理所有的请求
  3. 通过app.listen()建立一个server,指定host、port

app.get

app.get(path, function())    根据匹配的path执行相应的function;path需要指定;app.get和app.use的区别:

  • app.get只可以指定回调函数;
  • app.use可以指定回调函数和路由规则。

app.use

app.use用来注册函数,根据请求的path执行不同的回调函数或者路由;

var express = require("express")
var app = express();

app.use("/h", function(req, res, next) {
	console.log("step2");
	next();
});

app.use(function(req, res, next) {
	console.log("step1");
	next();
});

app.use("/h/hello/",function(req, res, next) {
	console.log("step3");
	next();
});

var server = app.listen(8888, "127.0.0.1", function() {
	console.log("listen host:" + server.address().address + "\nport:" + server.address().port);
})

代码解析:

app.use(path, function());    根据匹配的path执行相应的function;如果path未指定,则默认为'/'

如果function中没有next()方法,即表示如果匹配成功,则不再接着往下进行匹配,如果匹配失败会往下接着匹配直到匹配成功或者结束,因为匹配是子上往下的顺序。

测试结果:

cmd输出:step1

cmd输出:step2    step1

cmd输出:step1    

cmd输出:step2    step1    step3

cmd输出:step1

个人认为匹配规则可以归结为将浏览器输入req.url和匹配规则对照,将匹配规则和url path的postion=0位置开始进行一一比对,'/'作为一个分隔符,如果从postion = 0开始到'/'之间都可以匹配上则执行相应的回调函数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值