Express框架
目标
- 能够使用Express创建web服务器
- 能够使用Express处理请求参数
- 能够使用Express处理静态资源
- 能够使用中间件处理请求
- 能够在Express中集成art-template模板引擎
- Express框架简介及初体验
- Express框架请求处理
- express-art-template模板引擎
- Express中间件
1. Express框架简介及初体验
1.1 Express框架是什么?
1)Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web网站应用。使用原生JS代码写起来比较复杂,比较底层的;比如实现路由功能,需要对请求地址进行解析,还要进行各种判断,代码乱,不易阅读;再比如,实现静态资源访问功能,还要使用文件读取模块,对文件内容读取,还要设计响应内容类型,但实际和网站本身的业务逻辑没有关系;还有,接收post请求参数的代码,需要对请求对象添加事件,手动拼接请求参数,对请求参数的格式进行转化,都是复杂的,并且还是和和业务逻辑没有关系;原生JS实现网站应用比较困难,express就出现了
2)这个是nodejs的第三方模块-使用 npm install express 命令进行下载。企业中创建web应用的标准
1.2 Express框架特性
- 提供了方便简洁的路由定义方式:router第三方模块 ,其实就是从express框架中抽取出来的
- 对获取HTTP请求参数进行了简化处理:不用再转换格式,直接拿到对象类型
- 对模板引擎 支持程度高,方便渲染动态HTML页面;
- 提供了中间件(对请求的拦截)机制有效控制HTTP请求
- 拥有大量第三方中间件 对功能进行扩展:非常少的代码,做同样的事情
1.3 原生Node.js与Express框架对比 之 路由
app.on('request', (req, res) => { // 获取客户端的请求路径 let { pathname } = url.parse(req.url); // 对请求路径进行判断 不同的路径地址响应不同的内容 if (pathname == '/' || pathname == 'index') { res.end('欢迎来到首页'); } else if (pathname == '/list') { res.end('欢迎来到列表页'); } else if (pathname == '/about') { res.end('欢迎来到关于我们页面') } else { res.end('抱歉, 您访问的页面出游了'); } }); |
// 当客户端以get方式访问/时 app.get('/', (req, res) => { // 对客户端做出响应 res.send('Hello Express'); }); // 当客户端以post方式访问/add路由时 app.post('/add', (req, res) => { res.send('使用post方式请求了/add路由'); }); |
1.4 原生Node.js与Express框架对比 之 获取请求参数
app.on('request', (req, res) => { // 获取GET参数 let { query} = url.parse(req.url, true); // 获取POST参数 let postData = ''; req.on('data', (chunk) => { postData += chunk; }); req.on('end', () => { console.log(querystring.parse(postData) })); }); |