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

使用node+backbone搭建个人博客系统

时间:2023-04-03 13:45:17 Node.js

myblog博客地址:http://www.snayan.com。项目地址:https://github.com/snayan/myblog本项目使用的主要技术栈:backbone+sass+node+mocha+chai+grunt。Codingbackbone系统前端交互逻辑和视图渲染,利用集合、模型、视图、路由等骨干特性快速开发SPA应用。视图主要是用ejs模板引擎加上json数据渲染出来的。js文件采用AMD方式异步加载,包依赖管理使用bower工具。sass系统风格渲染使用sass编写scss,然后使用grunt组件工具将scss编译成css文件。节点系统采用RESTFULAPI架构风格。服务端使用express框架提供数据接口,配合主干中模型和集合的交互操作,主要是获取、更新、保存、删除等。抛开mogodb存储,结合文件模块ofnode使用文本文件存储,需要实现一些与backbone对应的模型,比如blog对象,blogSchema对象等。blogSchema是一个操作blog的封装对象,主要是封装CURD操作。每种类型的操作都有相应的异步和同步功能。本来一开始用monogodb和mongoose做的还不错,后来想着自己尝试实现一个ORM对象,多学点,多折腾一下。发表一篇文章,只需要写一个markdown文件,上传即可。github上使用marked将markdown文件转成html,使用highlight.js着色。管理员认证过程没有使用现有的passport模块,而是使用node的crypto模块,用aes-128-cbc加解密。将用户名、密码、有效时间用空格加密,并设置在cookie中。后续需要鉴权的操作可以在路由器中增加鉴权校验。由于管理员认证是通过cookie和crypto实现的,所以很容易被CRSF攻击。在这方面,在管理员页面动态生成一个令牌并传递给前端。前端每一次后续的权限验证操作都需要把这个token放在header中传递下去。服务器获取令牌并验证它。mocha+chai测试框架使用mocha,断言库使用chai。Grunt最终成为项目构建工具。grunt构建工具负责项目的ejs预编译,sass的编译,静态资源的concat、min、uglify、copy、rev等,以及express的启动和热加载,以及项目的打包和发布。grunt官网提供了非常丰富的插件,还有详细的说明,详见官网。该项目中使用的grunt文件如下所示。发布后,通过前面的编码,系统已经初步完成。现在需要在线部署和发布。本来工资很少,忍心去阿里云买服务器,最低配置,单核1G,宽带1mbps,负载均衡不需要多核,而且我没有买CDN来加速缓存。我很少去自己的地盘,估计别人也不会久留吧?听说现在对coder的要求是熟悉linux环境。由于之前都是做.net,玩的是window系统,所以这次,我买的服务器是最新版的centos7.264位。首先安装nginx作为反向代理,配置如下图,然后安装node,安装pm2,安装unzip。终于完成了。凡事亲力亲为,收获良多。