当前位置: 首页 > 互联网 > 正文

初识Nodejs

春节之前,领导有意或无意想让我熟悉下Node。之前对Node也有点初步认识:服务端javascript运行平台,Chrome的V8引擎,单线程,无阻塞等等。上述几点中除了了解javascript语言外,其它概念至今也还没有深刻的认识。但就是凭着新技术,高效率的优点,就产生了想学习的欲望。之后,我从网上下载了英文版的Node.js In Action.pdf。我个人对Manning出的书感觉还是挺靠谱的,先前有阅读过C#in depth, LINQ in Action等,阅读之后都感觉不错。

学习Nodejs,就要从安装开始。在Ubuntu上安装Node用直接的apt-get并没有直接安装成功,最后还是通过git下载Node的源代码到本地,然后make安装完成的,这让我了解从源文件是如何经过make到真正安装成功的过程。这个过程持续了有两到三个小时的时间,当然文件下载花了很大一部分时间。

接下来就是照着书本《Node.js In Action》的章节与代码依次阅读与练习下去。聊天室的程序让人摸不清头脑,相信初学者只有读完全书,再回来看这些内容可能会掌握其中的知识。接下来就是Nodejs的基础,如模块的概念,及如何定义与引入。事件驱动,异步机制等等。还有并行执行,顺序执行这些方法的使用。再接下来的章节,依次简要的介绍了最基础的Web应用模块http,并用这个模块构建一个小小的web程序。网站开发离不开数据库,书中又介绍了几种常见的数据库有关系型数据库mysql;NoSQL的MongoDB,及模块Mongoose的操作等。对我这个从未用过NoSQL数据库的我来说,也是算是对MongoDb的简单了解了。

提到编程,不得不说测试,但这部分知识我没有细看,原因是我对Nodejs的编程风格与方式还不完全熟悉,这部分知识内容也是粗粗的读过,代码也尝试过,但记忆并不深刻。而且浏览器端js的测试本来就不太友好,加上弱类型,很多问题只有运行时才能发现错误,于是这一部分是快速的略过了。

接下来可能就是本书的重点内容:connect与express框架。现在看来connect是express的基础。但分开对connect的讲解,让我理解了服务端http的基础知识,比如设置statusCode,setHeader方法等等。又在connect中详细介绍了中间件(middleWare)的引入及使用方法。这个引入中间件的关键现在想起来,肯定与Js的事件机制有关,一旦事件绑定,等到事件被触发时,相应的方法就会被异步执行调用。在文中的connect中有很多知识是我所没有去了解的,因为这本书太早了,是2013年出的,现在已经2015年3月份了,connect包中的模块结构已经发生了很大变化,因而我不得不舍弃一些无法运行的例子,又或到网上查询最新的文档,以确定书中代码能否在当前版本中正确的执行。到了express的章节,我也是安装了最新的express模块,然后又根据书中的例子,练习一个上传图片网站的示例。因此学习了mongoose,下载安装mongoDb数据库,发现书中上传文件代码跑不通,又引用加载了multer中间件。代码与示例差别很大,但网站最终的效果还是出来了。这个简单的上传程序让我理解了express的基础,类MVC的风格,路由机制,view引擎,静态目录等等,还有mongoDb数据库的增加与查询。要理解的模块和代码还有很多,但这个不断的查资料,代码变通的过程,让我忘记了书本的页数(我看书往往关注看了多少页数),不知觉一章下来,收获还是很大的。

接下来还有不少章节还是要继续,纵然书中的内容对目前来讲已经不再新了,但是其中内容及代码的思想还是值得去学习与理解的。希望阅读之后,有更大的收获。总得来说,再看完这本书之后,还应该继续认真的学习下Js的相关语法,回过头去再看看Nodejs的事件机制,对其本质最好有个深刻,透彻的理解,然后跟上时代的步伐,多学习了解各种非常棒的中间件,能够用在平常的项目及应用中去,尽快达到基本了解Nodejs平台的水平。

本文固定链接: http://www.byhard.com/?p=1310 | 海纳百川

该日志由 byhard 于2015年03月06日发表在 互联网 分类下,
原创文章转载请注明: 初识Nodejs | 海纳百川
关键字: ,
【上一篇】
【下一篇】

初识Nodejs:目前有2 条留言

  1. 沙发
    活动多多:

    你就这么弄 领导也敢让你上项目吗

    2015-03-19 15:41
    • byhard:

      哈哈,他不敢。

      2015-03-20 08:41