说到创建服务器,我们已经不陌生了,之前我们讲过创建一个服务器的模块http,大家不熟悉得可以到我的专栏去了解一下;

我们为什么要用express? 答案是开发效率高,而且更加方便功能更多,因为express是基于http开发出来的。

那话不多说,我们直接进入正题:

1、安装模块:

打开终端输入下面命令就可以安装,建议到自己的工程目录

npm i express@4.17.1

2、新建一个js文件,导入express模块:

下面代码是详细步骤

//1.1 安装并导入express模块
const express = require('express')

//1.2 创建一个服务器对象
 const app = express()

//2.1 监听客户端的get请求
app.get('/user',(req,res)=>{

    res.send({"name":'sun','age':34,'sex':'male'})
})
//3.1 监听用户请求字符串并且将其转为对象内容
app.get('/',(req,res)=>{

    res.send(req.query)
    console.log(req.query)

})

//3.2 动态匹配多参数
app.get('/user/:id/:username',(req,res)=>{
    
    console.log(req.params)
    res.send(req.params)

})

//2.2 监听客户端的post请求
app.post('/user',(req,res)=>{

    res.send('hello world!')

})

//1.3 开启服务器,在80端口
app.listen(8080,()=>{
    console.log('express running at http://127.0.0.1:8080')
})

我们创建一个服务器对象是利用导入的模块对象的express()方法,创建一个app对象进行接受,然后使用app的listen()方法启动服务器,这时候我们就可以访问了,这时候我们可以看到我们写的console.log; 

express接收报文乱码_Express

 3、我们可以通过app的get方法获取到客户端的get请求,还可以用post获取客户端的post请求;

get(‘URL’,(req,res)=>{})同http的on方法一样,req、res分别是客户端请求对象和客户端响应对象,又不懂的可以看之前的,URL是我们要访问的地址,也就是我们在网址搜索栏中8080后面的连接:

express接收报文乱码_POST请求_02

4、我们可以通过下面代码,实现通过搜索/user来像客户端返回一个对象,就像上面一张图所示:

app.get('/user',(req,res)=>{

    res.send({"name":'sun','age':34,'sex':'male'})
})

res.send()方法是将括号里面的内容响应给客户端,可以是对象,也可以是字符串。

5、req.query()方法可以将客户端响应过来的字符串添加进对象中,我们send的给客户端的对象:

//3.1 监听用户请求字符串并且将其转为对象内容
app.get('/',(req,res)=>{

    res.send(req.query)
    console.log(req.query)

})

/?name==名字&score=分数,如图所示:

然后服务器会给我们一个对象回复,对应的是我们自定义的属性(这里要特别注意格式问题):

express接收报文乱码_POST请求_03

 6、最后一个很重要的,我们如何得到客户端输入的动态参数呢?

比如我在网址后输入90,下次输入100,这个作用可见在我们提交一些数据的时候尤其重要:

express接收报文乱码_POST请求_04

 我们只需要加入一下代码就可以:

app.get('/user/:id/:username',(req,res)=>{
    
    console.log(req.params)
    res.send(req.params)

})

这里用到的是多参,我们只需要在/后加:参数名,就可以实现传参,利用req的params方法可以得到所有参数,会得到一个对象:

express接收报文乱码_GET请求_05