Express 能干什么

lxf2023-03-17 18:48:02

Express 能干什么

针对前端程序员而言,比较常见的二种网络服务器,各是:
1.Web 网络服务器: 专业对外开放给予 Web 网页页面网络资源服务器
2.API 插口网络服务器:专业对外开放给予API 插口服务器。
应用 Express大家可以方便、快速地建立 Web 网站服务器或 API 插口服务器
下面我们就应用 express 建立一个简单的web服务器

应用 express 建立一个简单的web服务器

// 1.导进 express
const express = require("express");
// 2. 建立 web 网络服务器
const app = express();
// 3.运行 web 网络服务器
app.listen(80, () => { 
    console.log('express serve Started successfully')
})

Express 能干什么

监视客户端的get、post要求并回到具体内容

怎样要监视客户端的 get要求和post请求,我们应该根据一个方法:
app.getpost(url,相匹配请求的处理函数func(){})方式。

app.get('你请求的url',function(req,res){
    //你处理领域模型
    res.send('返还数据信息给手机客户端')
})

ps:req: 手机客户端给你的资料:要求目标(包括了与要求有关的特性和方法)
ps:res: 网络服务器给客户端的: 回应目标(包括了与回应有关的特性和方法)
根据 res.send() 方式,能把做好的具体内容,发给手机客户端。
那样一个完整的要求步骤即使实现了。

建立get与post并回到具体内容

// 1.导进 express
const express = require("express");
// 2. 建立 web 网络服务器
const app = express();
// 监视客户端的get要求和post请求
app.get('/login', (req, res) => { 
    res.send({
        info:'这是get要求。祝贺你了要求通过了'
    })
})
// 监视客户端的get要求和post请求
app.post('/user', (req, res) => { 
    res.send({name:'张三',age:22, type:admin})
})
// 3.运行 web 网络服务器
app.listen(80, () => { 
    console.log('express serve Started successfully')
})
上边大家创立了get和post要求,而且返回相对应的具体内容。
针对get要求我们只需用浏览器上键入 http://127.0.0.1/login
就可以看到回到内容就是  登录成功           

Express 能干什么

代管静态资源-express.static()

express.static() 用这种方法能帮助我们做静态资源的代管。
通过这些函数公式,我们能十分方便地创建一个静态资源网络服务器。
例如我们可以把前面所写的编码装包后dist。就要放在public 目录下。

要是没有 public这一文件目录,必须建立这一文件目录,在工程项目的目录下建立。
例如现在你创建了一个 public 文件目录,public/img/vue3.png 文档
如今浏览 http://127.0.0.1/img/vue3.png
或是http://localhost/img/vue3.png

需注意,这时在浏览网络资源的时候不会必须特定 public 
http://localhost/public/img/vue3.png 浏览不上
const express = require("express");
const app = express();
//这儿不一定是public,你能是其他名,被指定文件目录便是储放静态资源的文件目录
//这儿能是相对路径也但是绝对路径 如:'./public'
app.use(express.static('public'))
app.listen(80, () => { 
    console.log('express serve Started successfully')
})

Express 能干什么

为何不用在访问的情况下再加上public?

留意:Express在指定静态数据清单中查找,并向外给予资源访问路径。
储放静态文件的目标目录public不会有在 URL

怎样代管好几个静态资源文件目录

由于在工作上,我们也会承担多个项目。
有的时候一些bug只能在接口测试或是项目环境中出现。
在我们修改了以后,不可以决定是否一定ok了。
这时候我们就要代管好几个静态资源文件目录

// 将public、testServe 文件目录指定为静态资源
app.use(express.static('./public'))
app.use(express.static('./testServe'))

好几个文件目录代管需要注意的问题点

如过你在 public目录下有一个 xiaoxiannv.png
testServe 目录下也有一个 xiaoxiannv.png
尽管这两张照片是不一样的,可是名字一样。
在浏览的时候就会优先选择来找 public 目录下的 xiaoxiannv.png 
假如public有了,那就不容易来找testServe目录下的xiaoxiannv.png了。
即便他的具体内容是不一样的。

怎样解决上边问题了

有些小伙伴要说:有的时候可能出现被托管两个服务发生同样的文件夹名称。
这如何处理了?
没错!很可能出现。
这时候我们应该给初始化的静态资源新增加一个作为前缀 a
app.use('/a',express.static('./public'))
这时候访问的情况下url必须特定上作为前缀
原来我们浏览 http://127.0.0.1/img/vue3.png
如今 http://127.0.0.1/a/img/vue3.png 增加了一个作为前缀

Express 能干什么

路由器的配对操作过程

每每一个要求抵达网络服务器以后,最先通过路由器的配对,仅有配对成功后,才能启用相对应的函数公式。
在搭配时,会依据路由器顺序进行匹配。
假如要求种类和请求的 URL 与此同时配对取得成功。
则Express 会把此次要求,转交给相对应的function函数公式予以处理

需注意:务必同时符合两个标准
1.依照顺序进行匹配
2.要求种类同样而且URL同样

// 监视手机客户端get要求
app.get('/login', (req, res) => { 
    res.send({
        info:'这是get要求。祝贺你了要求通过了'
    })
})
// 监视手机客户端post要求
app.post('/user', (req, res) => { 
    res.send({name:'张三',age:22, type:admin})
})
这就是一个特别简单的路由器。
当手机客户端get要求url是/login,相对应的便是 info: '这是get要求。祝贺你了要求通过了'
当手机客户端post要求url是/user,相对应的便是 name:'张三',age:22, type:admin

模块化设计路由器

大家从上面的路由器中发现了一个难题。
一个项目请求不计其数个。假如都是这样写。
毫无疑问没有好处。不利于后期维护保养及管理。
因而:为了更好地对路由器开展模块化的管理方法。
Express 不推荐我们将要路由器立即初始化到app 上,
反而是强烈推荐将路由器抽身为独立的控制模块

将路由器抽身成模块流程

将路由器抽身为独立模块步骤如下:
1.建立路由器控制模块相对应的js文档 如:建立 router.js文档
2.启用 var router = express.Router() 建立路由器目标
3.向路由器目标上初始化具体路由器
router.get('/user/edit', (req, res) => { 
    res.send({info:'变更取得成功'})
})
4.应用 module.exports 往外分享路由器目标
5.应用app.use()函数公式申请注册路由器控制模块

router.js文档

var express = require('express')
// 建立路由器目标
var router = express.Router()
//向路由器目标上初始化具体路由器
router.get('/user/edit', (req, res) => { 
    res.send({info:'变更取得成功'})
})
// 应用 module.exports 往外分享路由器目标
module.exports=router

应用登记注册的路由器控制模块 main.js

const express = require("express");
// 1.导进大家所写的路由器控制模块
const useRouter=require('./router')
const app = express();

// 2. 应用app.use()申请注册路由器控制模块
app.use(useRouter)

// 3.运行 web 网络服务器
app.listen(80, () => { 
    console.log('express serve Started successfully')
})

在地址栏键入 http://localhost/user/edit

Express 能干什么

如何为路由器控制模块新增加作为前缀?

以前我么分享如何为静态资源加上作为前缀。
app.use('/a',express.static('./public'))
实际上,路由器控制模块也类似代管静态资源。
//导进路由器控制模块
const userRouter = require( './router.js')
应用 app.use() 申请注册路由器控制模块,加上统一的浏览作为前缀 /api 
app.use('/api', userRouter)

在地址栏键入 http://localhost/api/user/edit

Express 能干什么

序幕

如果感到我写的不错得话,能给我我一个关注点赞、评价!div在此感谢诸位老铁们。
上一个给我点赞的小伙伴们都已找到女朋友了!
咦!你不相信,不信的话给我打赏看一下!
肯定你追到自己喜欢的Ta!
你肯定不会追,哎!不舒服。

我来教你,你可以这样说:
小生不才,冒昧一问,不知道女孩是不是情系别人。
爱情的事,再下害怕闹着玩的!
倘若女孩早就情系别人。那么在下便不再打扰。
倘若有一定的冒昧敬请女孩多多理解!
若女孩而己佳人,那么在下也不庸才自恼。
再下怕无法自拔,敬请女孩尽快告之!话已到这里,我就先在此谢过!
拿来不用谢!回过头跟我说结论啊!
咦!把握住一个没有点赞的小伙伴们!

文中已经参与「 . 」