node.js后端框架之express

node.js后端框架之express

express框架现如算时node.js中一个比较过时了的一个框架,但是虽然如此,还是很有学习的价值,之前也学习过,以下是总结一些常用的方法以及对一些问题的处理

  • express基本的结构

在这里插入图片描述
express和原生的http模块相比,好处在于它将get,和post方法进行了抽离,不需要全部都卸载一个server的函数里面,让页面的结构更加的清晰,同时也是能够让代码更加简洁明了。
req和res分别代表的是Request对象和Response对象,在他们中有很多使用的方法,便于我们在路由的时候对数据进行处理,如下图
在这里插入图片描述
在这里插入图片描述

  • express 模块化系统

模块化的好处就是在于将各个方法进行单独的抽离成一个JS文件,结构十分的清晰明了,在工程量小的时候,这么开发可能会觉得有点麻烦,但是当工程量大的时候,这么做就是十分的便于我们的维护。
express最常见的模块化开发就是将路由给单独的抽离出去
login.js:
在这里插入图片描述
app.js:
在这里插入图片描述
思路:因为将express的路由模块给导出来let router = express.Router(),之后的路由就是通过这个router对象来处理,最后再将这个router对象导出,再app.j中导入模块,在入口文件中通过使用中间键的形式使用即可app.use(login)即可

  • express解决跨域问题

跨域问题也是在前后端数据交互常常会发生的问题,在express中,一样也是使用中间键的方式,在路由之前对路由的地址就先做一层处理,就能够轻松的解决跨域的问题,代码如下:
在这里插入图片描述
在做了这层处理之后,前端就可以在跨域的情况下访问后端的接口了

  • express接收前端传递的数据

GET传值
get请求也可以传值,并且get传值一般都是在url中能够直接体现,后端火炮去get传值的方式就可以通过req.query的方式来获取get传值。
POST传值
在express中还是和原生的http模块获取post传值还是有一些区别的,因为post传值的值是在请求体中的,所以我们可以直接使用req.body来获取这个值,但是这一切都是建立在引用了body-parser这个模块下,在没有引用body-parser模块下使用req.body的结果是undefined,引用了之后会有值
引用body-parser需要使用如下代码:
在这里插入图片描述
在这里插入图片描述

  • 静态资源共享

静态资源共享的意思就相当于是我们直接输入一串url,会直接返给我一个静态文件,如图片等等,这个其实也就是网上接口的原理,输入一串url,直接传回一长串的json数据给我们,
实现这个功能我们需要创建一个单独的public文件夹,把需要共享的文件都放在这个文件夹下,最后只需要将这个文件夹给共享出来,就可以通过url路径的方式来获取文件夹下的文件了
使用app.use('/public',express.static('public'))的方式将这个public文件夹共享出去,之后要访问里面的文件就可以通过http://127.0.0.1:666/public/img/slide1.jpg的方式直接在浏览器中输入,那么图片就会直接显示出来

  • 文件的上传

文件的长传功能其实有很多种的实现方式,不过最好的还是使用form表单配合multer模块来实现文件的上传。
multer模块并不是核心模块,需要引入,使用的时候也是使用中间键的方式来引入
在这里插入图片描述
dest表示的是上传到服务器的位置,后面的array是需要和前面form表单种 input type = file 标签的name属性保持一致
在这里插入图片描述
form表单的enctype="multipart/form-data"属性添加了之后我们可以利用form表单提交一些图片、音频、视频等文件,如果不加,默认以enctype="application/x-www-form-urlencoded"编码传输
在传递了信息给后台之后,后台可以通过req.files来获取传递的数据。
在这里插入图片描述
在这里插入图片描述
这个就是今天主要复习到的关于express框架的知识,总的来说express框架还是很方便的,也很好用,也有值得提升的地方,比如在模块化开发种将路由的router对象导出,每个模块都得引入一遍express,这个就不是很好,重复的代码太多,所以在下一代的KOA框架中,就直接的将router对象给导出了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值