`
wangmuming1122
  • 浏览: 11231 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

试读《Node.js项目实践:构建可扩展的Web应用》感悟

 
阅读更多

                                    试读《Node.js项目实践:构建可扩展的Web应用》感悟

            接触Node.js已经一段时间了,首先,我们需要了解node.js是什么?

           Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。

          Node是一个Javascript运行环境(runtime)。

        实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

 

          通过阅读《Node.js项目实践:构建可扩展的Web应用》书的目录结构,基本了解了这本书大概讲解了那些内容。第一章是关于node.js的一个介绍,安装和调试。全书没有对node.js基础语法等有介绍,所以本书不适合没有编程基础的同学阅读。阅读本书的同学最好是会javascript的,但不是说JavaScript不错的同学学习Node就能轻松拿下,总结:水深不深我还不知道,不过确实不浅。关于node的很多知识需要一步一步的学习与研究。

 

        接下来就是介绍通过 Express.js 4 框架构建web项目,这个也是我们目前再做的,而且Express.js 4 版本是目前最新的大版本,所以对学习者来说,本书还是很实用的。

 

      再接下来就是提供的试读章节,由于在工作中没有真正用过Mocha去做测试,看到这一章的内容还是很有诱惑性的。先说下目前我自己在做node项目测试的时候,基本都是通过WebStorm (类似Eclipse之类的一个开发工具,对开发node项目非常好)构建node项目,然后通过书写js脚本测试逻辑是否正确。

      举个简单的示例说明下:

      在工程目录下面新建一个DateUtil.js文件,输入下面内容:

      

var dateFormat = require('moment');

module.exports = {
  
    /**
     * return example:2015-06-08 16:58:00
     * @param date
     */
    getFullTimeStringDate:function(date){
        return dateFormat(date).format('YYYY-MM-DD HH:mm:ss');
    }

    ,
    /**
     * return example:2015-06-08
     * 
     */
    getTodayYYYYMMDDString:function(){
        return dateFormat(new Date()).format('YYYY-MM-DD');
    }

}

 

   在对DateUtil.js做测试的时候可以再建立一个DateUtilTest.js,在这个js里面调用DateUtil.js中的方法,测试逻辑是否正确。

   

var dateUtil =  require("../utils/DateUtil");

console.log(dateUtil.getTodayYYYYMMDDString())

 

     通过右击鼠标:选择run DateUtilTest.js 后在控制台显示:

      

"D:\Program Files (x86)\JetBrains\WebStorm 9.0.1\bin\runnerw.exe" D:\nodejs\node.exe DateTest.js
2015-06-30

Process finished with exit code 0

   

    这只是一个简单的示例,我们知道再实际项目中比这个复杂的多。软件编程中,测试代码一般是根据需求,满足了需求基本就是ok的了。但是作为编程人员,一般都希望找到更好的测试工具,更高效的完成代码测试工作。本书《Node.js项目实践:构建可扩展的Web应用》第三章就介绍了一种和好的测试工具和方法。

 

       第三章开始介绍了一些名词:

  • TDD -- 测试驱动开发 (Test-Driven Development)
  • BDD -- 行为驱动开发 (Behavior Driven Development)
  • BDD 基于 TDD

     TDD的执行过程基本是:

     

  • 定义一个单元测试
  • 执行这个单元测试
  • 验证这个单元测试是否通过

     同时也介绍了如何安装和使用 Mocha 插件。   使用npm安装mocha:

      

npm install -g mocha@1.16.2  

     

   mocha提供以下有用的服务:

 

  • 支持测试报告
  • 异步运行模式
  • 丰富的配置选项

    命令使用:

    mocha test.js [options]  。

 

    hock机制,即before(), beforeEach(), after(), afterEach()提供各个执行阶段的hock。

   用assert进行测试,示例js代码:

   

var assert = require('assert');  
assert.equal(1,2,'1===2');  

 

    assert是核心功能,通过require('assert')来获取该模块。

    更多具体的内容大家可以看看试读章节。

 

    如果没有怎么接触过的同学对npm可能非常迷糊,nmp是什么?

    npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。具体的大家可以去百度之类的搜索了解下。

 

  再接下来的章节就是一些对node 模板 ,web应用,操作mongo DB之类的介绍,基本都是一些非常实用的功能性的介绍。

 

    因为本书是一本翻译的书籍,我个人感觉如果再加一些基础语法介绍的章节,node web常用开发工具和常用插件介绍的章节,node操作关系型数据库的章节会更好。

 

   不过,就本书而言,我觉得作为一个有编程基础的同学,通过阅读本书一定会有不少的收获。

  

 

    

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics