1.Express介绍
Express是一个简洁、灵活的node.js Web应用开发框架,是目前最流行的Node.js的Web开发框架,它提供一系列强大的功能,比如:
- 模板解析(render())
- 静态文件服务(express.static())
- 中间件(app.use())
- 路由控制(express.Router)
2. 使用express
本地安装1$ npm install express
获取、引用 通过变量app我们就可以调用express的各种方法
? express本质上是什么,是如何工作的呢?
3. get请求
根据请求路径来处理客户端发出的GET请求 语法
- 第一个参数path为请求的路径
- 第二个参数为处理请求的回调函数,有两个参数分别是
- request 请求信息
- response 响应信息123456789let express = require('express')'let app = express();app.get('/',(req,res)=>{res.end('welcome to Home!')})app.get('/list'/(req,res)=>{res.end('welcome to List');})app.listen(3000);
4. curl客户端使用方法
- 可以用 postman APIs请求模拟发送
指定请求头
1$ curl -H 'content-type:application/json;charset=utf8' http://localhost:8888指定方法名
浏览器的地址行不能发送出post请求
1$ curl -X POST http://loaclhost:8000/user指定请求体
1curl --data "name=zfpx&age=8" http://loaclhost:8000/userall
app.all()可以匹配所有的HTTP动词 路由中的星号能匹配所有的路径
1app.all(path,(req,res)=>{})
实例:
6. 获取请求参数
- req.host 返回请求头里取的主机名(不包含port)
- req.path URL的路径名
- req.query
7. 获得查询字符串
1234// http://localhost:3000/?a=1&&c=3app.get('/',(req,res)=>{res.send(req.query)})
8. params路径参数
req.params 可以用来获取请求URL中的参数值
10. send
send()想浏览器发送一个响应信息,并可以智能处理不同数据类型的,并在输出响应时会自动进行一些设置,比如HEAD信息, HTTP缓存处理不同类型的数据.语法:
实例一: 当参数为一个String时,Content-Type默认设置为’text/html’.
1res.send('Hello World'); // Hello World当参数为Array或Object时,Express会返回一个JSON
12res.send({user:'tobi'}) // {"user":"tobi"}res.send([1,2,3]) //[1,2,3]当参数为一个Number时, 并且没有上面提到的任何一条在响应体力,Express会 帮你设置一个响应体,比如:200会返回字符串”OK”
123res.send(200); //OKres.send(404); //NOT FOUNDres.send(500); //Internal Server Error可以查看statusCode所对应的状态类型
1require('_http_server').STATUS_CODES
11. 模板
在nodejs中使用expres框架,它默认的是ejs和jade渲染模板
11.2使用模板
使用ejs模板 -> 默认指向views文件夹
模板使用html后缀
11.3渲染视图
语法:
- 参数view就是模板的文件名
- 在渲染模板时将自定义的data对象和在中间件中定义的locals对象,使用Object.assign(obj1,locals)合并后的属性集作为模板变量值传入
- callback 用来处理返回的渲染后的字符串
11.4 模板原理
123456let tmp1 = `<h1>{{name}}</h1><h1>{{age}}</h1>`let data = {name:'wang',age:18};let html = tmp1.replace(/\{\{(\w+)\}\}/g,function(input,group){return data[group];})console.log(html); //`<h1>wang</h1><h1>age</h1>`
12. 静态文件服务器
如果要在网页中加载静态文件(css,js,img),就需要另外指定一个存放静态文件的目录,当浏览器发出非HTML文件请求时,服务器端就会到这个目录下去寻找相关文件
13. 重定向
redirect 方法允许网址的重定向
实例:
14. POST 请求
post 方法根据请求路径来处理客户端发出的Post请求 语法:
示例:
16. 中间件的原理
|
|
17.params原理
|
|