博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于用nodejs编写管理系统
阅读量:5977 次
发布时间:2019-06-20

本文共 1657 字,大约阅读时间需要 5 分钟。

最近学习了node.js,使用node.js写了一个超市管理系统的项目,接下来我对项目中用到的一些技术总结一下。

我的项目主要运用bootstrap + express进行搭建,后台运用MongoDB数据库,实现了基本的增、删、改、查、分页等功能。Bootstrap是简洁、直观、强悍的前端开发框架,让web开发更迅速、简单,我的项目页面较多,采用bootstrap框架,大大减少了工作量,而Express 是一个非常流行的node.js的web框架。基于connect(node中间件框架)。提供了很多便于处理http请求等web开发相关的扩展。在我的项目中,页面的路由,数据的前后端交互,都采用express框架,让自己的项目结构变得十分清晰,并且数据处理的难度也大大降低。

在做项目的过程中,遇到了好几处困难,比如,登录后数据的存储以及展示,密码的修改等等,但是给我印象最深的就是在数据查询的分页中数据显示的问题,数据太多的话,就要进行分页,但是页面跳转时会刷新已有的查询,经过我的努力,想到了一个方法,代码如下:

router.get('/search',(req,res)=>{

//console.log(req.query)

res.send(req.url.split('?')[1]);

})

在search页面中获取到路径,取到?后面的具体的值,传到查询列表页,就解决了上述问题。

router.get('/billSearch',(req,res)=>{

//数据总条数

var count = 0;

//每页展示的数量

var size = 5;

//总页数

var page = 0;

//页码

var pageNum = req.query.pageNum;

console.log(req.url)

mongodb.connect(db_str,(err,database)=>{

database.collection('bill',(err,coll)=>{

console.log(req.query.billId)

async.series([

function(callback){ coll.find({billId:req.query.billId}).toArray((err,data)=>{ //对页码总页数,信息的判断

//赋值

count = data.length;

page = Math.ceil(count/size);

pageNum = pageNum<1?1:pageNum;

pageNum = pageNum>page?page:pageNum;

callback(null,'')

})

},

function(callback){

coll.find({billId:req.query.billId}).sort({_id:-1}).limit(size).skip((pageNum-1)*size).toArray((err,data)=>{

callback(null,data)

})

}],

function(err,data){ //data值的是上面异步处理的函数返回的结果集

['',data]

res.render('billSearch',{list:data[1],page:page,count:count,pageNum:pageNum,size:size,name: req.session.name,lujing:req.url.replace(/\&pageNum.*/,"")});

database.close();

})

})

})

})

在以上代码中,虽然解决了查询的分页问题,但会出现点击下一页url中pageNum累加而不是消失的情况,针对这种情况,我对路径进行了处理,如上面代码中紫色的部分。

通过这个项目,让我对node.js的理解更进一步加深了,希望通过以后的学习会让自己变得越来越好。

转载地址:http://xgsox.baihongyu.com/

你可能感兴趣的文章
Windows App开发之集合控件与数据绑定
查看>>
五分钟创建一个自己的NPM包
查看>>
iOS多线程编程:线程同步总结 NSCondtion
查看>>
Flutter开发环境安装
查看>>
QQ登录的那些坑(如何开发qq登陆功能)
查看>>
中大型网站技术架构演变过程
查看>>
深入剖析OkHttp系列(五) 来自官方的事件机制
查看>>
Java 9 CompletableFuture 进化小脚步
查看>>
【前端词典】进阶必备的网络基础(下)
查看>>
ARTS训练第三周
查看>>
12月21日云栖精选夜读:阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”...
查看>>
一出好戏不止是部电影,它也正接近你的生活。
查看>>
Angular 表单验证类库 ngx-validator 1.0 正式发布
查看>>
刨根问底——Handler
查看>>
H5活动刮刮卡功能的实现与注意事项
查看>>
搞定Go单元测试(三)—— 断言(testify)
查看>>
web前端—面试2
查看>>
设计模式之 - 简单工厂模式
查看>>
前端如何搭建一个成熟的脚手架
查看>>
vue中v-for循环如何将变量带入class的属性名中
查看>>