Express入门:
- 相关网络概念
- 服务器创建
- 请求与响应
- url数据获取
相关基础概念
|
IP地址:
互联网上每台计算机的唯一地址,电脑的ip地址相当于电话的电话号码
只有知道对方的IP地址,才能与对应的电脑进行数据通信
点分十进制:
IP地址的格式,(a.b.c.d),其中,a,b,c,d都是0~255之间的十进制整数
如:(192.168.1.1)
互联网中的每台服务器,都有自己的IP地址
可以再windows的终端中运行`ping www.baidu.com`命令,即可查看
百度服务器的IP地址——(182.61.200.7)
我们也可以直接通过在浏览器中输入ip地址访问百度的服务器
本机的ip地址
开发期间,自己电脑既是服务器也是客户端,为了方便测试,可以在浏览器
中输入127.0.0.1,就可以把自己的电脑当做一台服务器进行访问了
域名和域名服务器
域名
由于ip地址是一长串数字,不直观且不便于记忆,于是人们由提出了`字符型`的
地址方案,即所谓的域名(Domain Name)地址
域名服务器
ip地址与域名是一一对应关系,这种对应关系存放在一种叫域名服务器
(DNS,Domain Name Server)的电脑中.使用者只需要记住域名访问对应
的服务器即可。
localhost
开发测试期间,127.0.0.1对应的域名是localhost,他们都代表自己的电脑
,使用上没有区别
端口号
一台服务器中可以运行很多服务,每个web服务都对应一个唯一的端口号,和现实中
的门牌号一样,客户端发送过来的网络请求,需要通过端口号,将请求准确的交给
对应的Web服务进行处理
访问8080端口:localhost:8080
注意
- 每个端口号不能同时被多个web服务占用
- 默认端口号'80',当访问80端口号时,url中的端口号可以省略
Express
概念:基于Node.js平台,快速,开放,极简的Web开发框架 通俗的理解:Express与Node.js内置的http模块类似,是专门创建Web服务器的
对于前端程序员来说,最常见的两种服务器
- Web网站服务器:专门对外提供Web网页资源的服务器。
- API接口服务器:专门对外提供API接口的服务器。
使用Express,我们可以方便,快捷的创建Web网站的服务器或API接口的服务器
创建基本的Web服务器
//1.导入express
const express = require('express')
//2.创建web服务器
const app = express()
//3.调用app.listen(端口号,启动成功后的回调函数),启动服务器
app.listen(80,()=>{
console.log('express server running at http://127.0.0.1')
})
监听GET/POST请求
通过app.get()方法,可以监听客户端的GET请求
//GET请求
app.get('请求URL',function(req,res){/*处理函数*/})
//POST请求
app.post('请求URL',function(req,res){/*处理函数*/})
//参数1:客户端请求的URL地址
//参数2:请求对应的处理函数
// req:请求对象(包含了与请求相关的属性与方法)
// res:响应对象(包含了与响应相关的属性与方法)
把内容响应给客户端
通过res.send()方法,可以把处理好的内容,发送给客户端
//GET请求
app.get('/user',function(req,res){
//向客户端发送json对象
res.send{{name:'张三',age:20,gender:'男'}}
})
//POST请求
app.post('/user',function(req,res){
//向客户端发送文本内容
res.send('请求成功')
})
获取URL中携带的查询参数
通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
app.get('/',(req,res)=>{
// req.query默认是一个空对象
//客户端使用?name=zs&age=20 这种查询字符串形式,发送到服务器的参数,
//可以通过req.query对象访问到,例如:
//req.query.name req.query.age
console.log(req.query)
res.send(req.query)
})
获取URL中的动态参数
通过req.params对象,可以访问到url中,通过':'匹配到的动态参数
动态参数: /user/:id
多个动态参数之间用'/'隔开
/user/:id/:username
//假设客户端发送的请求地址为http://127.0.0.1/user/1
app.get('/user/:id',(req,res)=>{
//req.params 默认是一个空对象
//里面存放着通过':'动态匹配到的参数值
console.log(req.params) //{ id:'3',name:'zs' }
res.send(req.params) //{ "id":"1" }
})
//一次匹配多个动态参数
//假设客户端发送的请求地址为http://127.0.0.1/user/2/zs
app.get('/user/:id/:username',(req,res)=>{
//req.params 默认是一个空对象
//里面存放着通过':'动态匹配到的参数值
res.send(req.params) //{ "id":"2" ,"username":"zs"}
})