Express+Mysql搭建的简单的图书馆流通管理系统
发布于 8 年前 作者 lxz612 9451 次浏览 来自 分享

最近由于个人作业需要,所以研究了下Node,然后花两周时间写了个图书馆管理系统的小项目。作业交了,这小东西藏着也没啥用,所以就拿出来交流分享下。用Mysql不用Mongodb的原因是自己在学《数据库原理》,所以就想把关系型数据库学的差不多了,再考虑Mongo。

技术栈
  • Express框架 Node.js Web 应用程序框架
  • Mysql数据库 Mysql是最受欢迎的开源数据库。 需要注意的是:Mysql数据库引擎一定要是支持事务的innoDB,不是的话可能不会报错,但业务可能会发生错乱。具体设置请自行百度.
  • Handlebars模板引擎 Handlebars是一个高效率的语义化模板,和ejs差不多。
  • Bootstrap前端框架 Bootstrap是一个简洁、直观、强悍的前端开发框架,可以帮助快速构建起简洁美观的前端界面。
相关配置

有关项目的下载、配置和运行都写在readme.md上。项目地址如下: https://github.com/lxz612/libsystem

运行截图

1.搜索

http___127.0.0.1_3000_search.png

2.结果 http___127.0.0.1_3000_search_r.png

3.书目信息 FireShot Capture 23 - 书目信息-图书流通管理系统 - http___127.0.0.1_3000_books_isbn=9787505963191.png

4.借阅 FireShot Capture 29 - 借阅-图书流通管理系统 - http___127.0.0.1_3000_borrow_barcode=70096125.png

5.登录 FireShot Capture 24 - 登录-图书流通管理系统 - http___127.0.0.1_3000_login.png

6.当前借阅 FireShot Capture 25 - 当前借阅-我的图书馆 - http___127.0.0.1_3000_mylib_myborrow.png

7.借阅历史 FireShot Capture 26 - 借阅历史-我的图书馆 - http___127.0.0.1_3000_mylib_history.png

8.证件信息 FireShot Capture 27 - 读者信息-我的图书馆 - http___127.0.0.1_3000_mylib_info.png

项目地址: https://github.com/lxz612/libsystem

22 回复

建议多写点内容,一个是便于他人阅读,另外也是自身的一种提高

@i5ting 👍以后补充完整,多谢前辈指导…

学学 @nswbmw 大大的文档,肯定会有很多收获的

查库用promise写比较好

@yakczh 正在考虑完善,多谢指导……

来自酷炫的 CNodeMD

不给截图和功能说明,没多少人愿意去clone代码下来看的。Readme.md相当于没内容。

没截图和功能说明 但我还是去看了看

@13241491189 今晚补图……

来自酷炫的 CNodeMD

请楼主写详细点,想学习

Message:ER_BAD_FIELD_ERROR: Unknown column ‘readerId’ in 'where clause’ Error: ER_BAD_FIELD_ERROR: Unknown column ‘readerId’ in ‘where clause’

libsystem-master\models\user.js 14行

@yakczh 你看下数据库readerId的字段有没有写对

检索部分是用数据库的查询语句呢还是用JS的Match对字符串进行匹配~~

这东西开学我搞过,结合微信的

@cctv1005s 是用SQL语句的

来自酷炫的 CNodeMD

楼主,有没有学习handlbars的教程链接分享一下,想系统学习一下,thx

@stonedu 我是推荐直接看 官方文档,都是比较容易看懂的英文,也有翻译过来的handlebars中文文档 当然开始时可以先看些入门教程。比如这篇博客 http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/ youtobe上也有些歪果仁录制的handlebars视频,也很有意思。

@lxz612 非常感谢。已收藏

@stonedu 不客气,应该的……

来自酷炫的 CNodeMD

@lxz612 在问个初学者问题,我在express-生成器下生成的是hbs4,和你项目里用的express3-handlebars,这两个有没有什么区别还是用起来完全相同呢?

@stonedu 还是有区别的。hbs是express4默认生成的handlebars中间件(也可以理解为handlebars引擎 ),而express-handlebars是另外一个handlebars中间件(是我自己另外找的一个)。他们功能是相同的,都是提供handlebars模板的解析,只是初始设置时写法不同而已。比如:

~~express-handlebars注册helper和partials的写法,也就是我项目里的写法
// 模板引擎设置
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs({
  defaultLayout:'layout',
  helpers:helpers,//设置helper
  partialsDir:[//设置partialsdir
    'views/partials/'
  ]
}));
app.set('view engine', 'handlebars');

而hbs是这样写

app.set('views',path.join(__dirname, 'views'));
hbs.registerHelper(helpers);
hbs.registerPartials(__dirname + '/views/partials',function(){
  console.log('okkkkkk');
});
app.set('view engine', 'hbs');

两者在文件组织上也有些不同。比如hbs的模板后缀名为.hbs,而express-handlebars的是.handlebars;还有express-handlebars的公共布局文件要放在layouts文件夹下,而hbs的则是放在其他布局文件同级的位置。更多的不同可以看他们的官方文档。 hbs的文档 express-handlebars的文档 我还是推荐用express-handebars,文档写的详细。

@lxz612 OK,我的疑惑明白了,太感谢了

@stonedu 不客气!应该的。

来自酷炫的 CNodeMD

回到顶部