【express在node中的基础使用】搭建服务器,完成静态伺服

一.服务端基本三层解构

1.1 路由层也叫表现层:

        搭建服务器,编写静态私服接口都应该写在路由层Router目录文件夹下

1.2 服务层:

编写DAO中的各表的增删改查功能

1.3DAO层:

        主要完成建库建表建字段的功能

        如果想知道如何利用sequelize联动mysql完成建库建表建字段 请看我上一篇博客

https://blog.csdn.net/weixin_48813932/article/details/124041795?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_48813932/article/details/124041795?spm=1001.2014.3001.5501

二.node中Router层的实现 - express框架

1.下载:

在vscode中下载

npm i express

2.使用

        express使用需要了解中间件的概念,这里简单说明一下

2.1中间件

理解:中间件实质上就是一个个封装好的函数。

中间件的处理过程

1.当匹配到了请求

2.交给第一个处理函数处理

3.函数中需要手动next()的交给后续中间件处理

处理细节

1.如果后续已经没有了中间件

        express发现如果响应没有结束,express会响应404

2.如果中间件发生了错误

        不会停止服务器

        相当于调用了 next(错误对象)

        寻找后续的错误处理中间件,如果没有,则响应500

3.响应结束,处理函数任然要继续往下执行,只要有next方法,但end只会有一个

 不太理解的小伙伴,咱们直接看实例

3.实例

3.1 搭建服务器和静态私服的实现

//将下载好的express模块导入
const express = require("express");

//node内置的path模块导入
const path= require("path");

// 调用express函数,内部会自动创建网站服务器,并提供一系列API函数方法
const app = express();

const path = require("path");

//监听服务端 第一个参数是定义服务器的端口
app.listen("3000", () => {
    console.log("开启服务端");
});



// express.urlencoded,express.json,都是内置处理参数的中间件函数
app.use(express.urlencoded());
app.use(express.json());


//将需要加载的静态资源的总目录转换成绝对路径
const public = path.resolve(__dirname, "../public");
//静态私服
app.use(express.static(public));

//API接口
//路由中间件express.Router()写在api文件夹中
//用户
app.use("/api/admin", require("./api/admin"));



express插件已经帮我们把静态私服做好了,所有只需要调用express.static()这个中间件即可

use这个方法是表示,不管是什么方法都可以进入到这个函数中

最后来看一下一个比较简单易懂什么是中间件的例子

//将下载好的express模块导入
const express = require("express");

//node内置的path模块导入
const path= require("path");

// 调用express函数,内部会自动创建网站服务器,并提供一系列API函数方法
const app = express();

//这个app就是可以理解为是一个复杂对象,内置了很多方法
//第一个参数是路径接口,第二个参数本质是一个函数,在express中定义为中间件
//这个中间件有很多参数不止下面三个,
//req是前端请求,res是后端响应,我们重点来讲一下这个next,它是中间件的灵魂导师
//如果有next并且事情没有处理完,没有给前端返回响应那么next会指向下一个中间件直到后端返回一个响应
app.post("/news", (req, res, next) => {
    console.log("body", req.body); 
    next()
});
app.post("/news", (req, res, next) => {
    console.log("body", req.body); 
    res.end("123")
    next()
});

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值