Node.js + Express + mongodb 的博客项目之总结(十一)

前言

之前一直想做一个前后端都完整的个人项目,但由于当时还在学校进行实训2的学习,就一直没有多少时间着手,所以就在暑假的时候将这个项目做了起来。技术栈上采用 Node.js + Express + mongodb,经过了断断续续的开发,如今完成了这个项目的大部分基本功能,今天抽个时间写了个总结。项目的代码我全程托管到 GitHub 上,项目地址 https://github.com/tflins/node_blog


难点

  • 将过程整理成博客

整个项目,最耗费我时间的,不是写代码开发的过程,而是我将其过程整理成博客文章。有时候真的有种说不出的感觉,在写博客的过程中,你需要咬文爵字,思考着怎么样来写,怎么样来描述这个过程,什么东西是需要重点提及的,什么东西是需要一笔带过的······ 这些东西都需要自己去思考,去琢磨,所以说写博客真的很锻炼人(笑哭)。

  • Node.js 的异步处理

整个开发过程,我印象最深的就是 Node.js 的层层回调了(传说中的回调地狱)。最主要的是体会到了异步开发的思想,不要尝试使用同步的思维去写 Node.js,当然也可以,但会影响性能。就比如 mongooes 模块所提供的数据库驱动,它并没有提供相关的同步方法,全是异步方法。如果使用同步的思维去写异步,就会出现你在某些地方需要 I/O 操作返回的值的时候,得不到需要的值,因为它会将 I/O 操作放在执行队列的后面。所以,就需要不断的使用回调函数,一个两个三个还好,但随着功能需求的增加,就会形成传说中的回调地狱。所以,为了追求更加优雅的代码,异步处理也有不同的写法,在本项目中,最常用的是 ES2016 中的 promise

  • app.use

本项目所采用的 WEB 框架 Express 中,最常用的就是 app.use() 了。app.use 的官方文档原文是:Mounts the specified middleware function or functions at the specified path: the middleware function is executed when the base of the requested path matches path. 大概意思就是就是把特定的中间件加载到特定的请求路径下面。当一个请求来的时候,会依次被这些中间件处理,app.use顺序执行,使用 next() 继续。app.use注册的中间件,如果path参数为空,则默认为”/”,而path为”/”的中间件默认匹配所有的请求。

  • cookie 的使用

在需要保持用户登录的时候就需要 cookie 了,在我的另一篇博客里面介绍有关于 cookie 在本项目中的使用 –> Node.js + Express + mongodb 的博客项目之保持用户登录,区分管理员账户,及用户登出(四)

  • 分页模块的封装

在这个项目中,需要多次用到分页查询数据的功能,所以我就将他给封装成一个模块,以便多次使用。但在这过程中却是略微痛苦的,因为有时候不同的页面它所需要的分页数据是不同的,所以我就得不断的完善分页处理模块的参数及方法,以实现不同的需求,参数一多,我就觉得不够优雅,所以就以对象的形式作为参数传递过去。


结语

整个过程真的是挺锻炼人的,学习的时候,不断的输入新的知识,然后将学到的知识转换成自己的再以另一种形式输出出去。就比如,我将自己所学的,整理成相应的博客。这样一来,就有了所谓的 输入 –> 输出 的学习模式,很不错。
话也不多说了,准大四了,希望未来的自己能有更好的发展吧!

------ 本文结束 ------

版权声明

Tflin's Blog by Tan Feng Lin is licensed under a Creative Commons BY-NC-ND 4.0 International License.
谭丰林创作并维护的Tflin's Blog博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Tflin's Blog 博客( http://tflin.com ),版权所有,侵权必究。