当前位置: 首页 > 后端技术 > Node.js

一个个人小项目,express

时间:2023-04-03 20:45:21 Node.js

做的后台增删改查使用express实现一个后台管理系统github地址,欢迎star,有错误欢迎指出。前言最近学习了express,所以想写一些有express的东西,加深印象,巩固所学的知识。因此这个个人项目。前端部分是bootstrap布局,jquery,js实现功能,后面部分expressframework搭建服务,编写路由接口。mysql对数据进行增删改查。项目概览先来看一下实现图。项目功能实现一、Express路由界面编写及前端展示1、安装express,这里不再赘述。express官网上有步骤,主要是看app.js中的路由设置,如图,这里有几个改动,说说我的理解,如果有不对的地方,希望指出出去。app.js作为入口文件,看图片上的箭头,当请求的路径是news时,也就是app.use('/news',index)这行代码,会在router文件然后Execution,也就是代码行require('../routers/index')。2、看index文件下面的代码,如图这里,把前台传过来的newstype(新闻类型的值)和pagenumber(展示的条数)传入,然后在里面搜索数据匹配返回的newstype的数据库限制显示3条,返回前端数据,前端代码如下图(见截图不全),然后获取数据遍历和显示。3、实现加载更多的功能,如上图,只需要给一个初始值pagenumber,然后点击加载更多按钮即可添加3。2、后台的增删改查page1.主要目的是获取用户输入的值,然后在点击按钮的时候点击发送请求。首先看express的路由接口设置。如图,这里解释一下,到了后台管理页面,查看app.js里面,这里会执行这两段代码,app.use('/admin',users)varusers=require(../routes/users)这里我们需要找到routes文件夹下的users文件并执行。2、这里使用了node的xss防御插件,用法比较简单,npm安装,然后导入。varxss=require("xss");之后,检查用户的输入。这里的值是针对xss存储攻击的,比如varnewstitle=xss(req.body.newstitle);3.另外,csufr还做了跨站攻击的处理,这里说说我的理解。首先需要在html中插入一个隐藏的input标签,">这里需要注意的是name值必须是_csrf,这个Input标签的作用相当于给自己带了一个token(身份证)。然后,当用户输入的时候,也要获取输入的值,并一起发送到后台,如图。然后在express中,npm需要安装csurf插件并导入,如图。最后在进入后台管理路由时判断是否匹配携带的token。router.get('/',csrfProtection,function(req,res){res.render('users',{csrfToken:req.csrfToken()})})3.分页显示其实更类似于loading,首先获取当前页码,然后设置每页显示多少条,最后将这两个值传给后台,后台mysql就会运行。我比较懒,这里没有计算。准确的数应该是得到数据库中的数据项数,然后除以每页要显示的项数,再用总数除以这个数得到页数。总结通过这个个人项目,对express有了一点了解,加深了对ajax的使用和理解,进而学习了web安全防御,主要分为存储型和反射型。反射型一般攻击urls,存储型一般攻击用户输入。