Node.js:Express入门

281 阅读4分钟

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"}
    
})