Node.js 进阶测试

测试您的学习进度

测试您的 Node.js 知识和技能,您能够快速了解您对从此学习路线图中学到的关键信息和编程技能的掌握程度。

Andrew Glover, CTO, App47

http://www.ibm.com/developerworks/i/p-anglover.jpgAndrew Glover 是一名开发人员、作家、演讲家和企业家,他对行为驱动开发、持续集成和敏捷软件开发有巨大的热情。他是 easyb 行为驱动开发 (BDD) 框架的创建者和以下三本书的合著者:持续集成Groovy 在行动Java 测试模式。您可以通过他的 博客 随时关注他,或者在 Twitter 上关注他。



2012 年 10 月 22 日

这些练习和解决方案对 developerWorks 学习路线图 “全面认识 Node.js” 进行了补充。

  1. 将这个简单的节点 Web 应用程序转换为 Coffeescript
    var express = require('express');
    
    var app = express.createServer(express.logger());
    
    app.get('/', function(req, res) {
      res.send("Hello World!");
    });
    
    var port = process.env.PORT || 3000;
    
    app.listen(port, function() {
      console.log("listening on " + port);
    });
  2. 您得到了使用 Coffeescript 编写的相同代码,但是未进行编译。修复这些代码
    express = require 'express'
    
    app = express.createServer(express.logger());
    
    app.get '/', (req, res) ->
    	console.log "/ hit!"
    		res.send "Hello World!"
    
    var port = process.env.PORT || 3000
    
    app.listen port, ->
    	  console.log "listening on #{port}"
  3. Amazon 的 DynamoDB 只支持字符串数据类型
    1. 正确
    2. 错误
  4. DynamoDB 支持为表中的许多不同的键建立索引
    1. 正确
    2. 错误
  5. 下面的 Node 程序为什么不能运行?问题出在哪儿?
    var express = require('express');
    
    var app = express.createServer(express.logger());
    
    app.get('/', function(req, res) {
      res.send("Hello World!");
    });
    
    var port = process.env.PORT || 3000;
    
    app.listen(port, function() {
      console.log("listening on #{port}");
    });
  6. Cake 是什么
    1. CoffeeScript 的构建工具
    2. 与 DynamoDB 配套使用的节点库
    3. 受 Fortran 启发的语言,可以使得使用 JavaScript 变得更简单
  7. 通过以下哪种方式可将代码部署到 Heroku
    1. SCP
    2. FTP
    3. Git push
    4. Custom 协议
  8. DynamoDB 的 Scan API 允许您
    1. 搜索非主键字段
    2. 批量上传图片
    3. 在一个 Item 中创建新的 Attribute
  9. 对于 Mocha 测试框架,您可以同时测试同步和异步代码
    1. 正确
    2. 错误
  10. 您可以通过添加更多的 Dynos 来提高托管在 Heroku 上的 Web 应用程序的速度
    1. 正确
    2. 错误
  11. 以下使用 CoffeeScript 编写的 Mocha 测试有哪些逻辑错误?为什么测试会失败
    describe 'updates for a beer using DynamoDB API', ->
    	before (done) ->
    		update = {votes: {put : 1}, type: {put: 'IPA'}}
    		dynode.updateItem 'beer_ratings', '60 Minute IPA', update, (err, resp) ->
    			done(err)
    	it 'should support incrementing a value corresponding to a vote', (done) ->
    		dynode.getItem 'beer_ratings', '60 Minute IPA', (err, item, meta) ->
    			item.should.have.property 'votes'
    			item.votes.should.be.above 1
    			done(err)
    	after ->
    		update = {votes: {add : 1}, type : {put: 'IPA'}}
    		dynode.updateItem 'beer_ratings', '60 Minute IPA', update, (err, resp) ->

答案

此处 查看您的答案。

参考资料

学习

  • 全面认识 Node.js:此学习路线图介绍了 Node.js 基础知识,并使用 Node 和支持技术构建了一个应用程序,对其进行测试并在平台即服务模式下部署它。
  • Node.js 究竟是什么?”(developerWorks,2011 年 4 月):Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。
  • 面向 Java 开发人员的 Node.js”(developerWorks,2011 年 12 月):Node.js 是一种激动人心的开发方式,可替代传统的 Java 并发性,只要有一个开放的心态和一点点 JavaScript 知识,就可以立即开始进行开发。
  • 被误解的 Node.js”(developerWorks,2012 年 1 月):如果经常浏览各大技术网站,那么你会发现自己很难错过 Node.js,程序员们兴奋地说:JavaScript 也可以开发服务器端的程序了!没错,Node.js 的确为我们提供了这种便利,前台后台都用同一种语言实现。但这种兴奋,却极易掩盖 Node.js 另外一个重要的特性:基于事件驱动的编程模型。而后者,才真正使得 Node.js 成为开发高并发大型网络应用的关键。本文详细介绍了 Node.js 的核心,即基于事件驱动的编程模型,并与传统的单线程和多线程编程模型进行对比。文章最后提供了一个完整的 Web 应用,帮助您理解 Node.js 的编程方式。
  • 在 Node.js 上使用 Dojo”(developerWorks,2012 年 3 月):Node.js 让服务器端和客户端的编程语言得到了统一,而 Dojo 则让开发框架得到了统一。得益于优良的架构,Dojo 能同时在服务器端和客户端运行,从而让 Web 开发人员用同一种语言,同一个框架就能实现完整的 Web 应用。
  • 全面认识 Node.js”(developerWorks,2012 年 9 月):Node.js (Node) 是构建于 Google Chrome 的 JavaScript 运行时之上的一个 I/O 环境,实质上,它是服务器端的 JavaScript 实现。Node 中的异步事件驱动 I/O 模型使开发人员能够轻松利用 JavaScript 知识快速构建高性能、可伸缩且高并发性的 Web 应用程序,并在云中运行这些应用程序。该知识路线图首先提供了有关 Node.js 的基础知识,并超越这些基础知识,使用 Node 和支持技术来构建和测试应用程序,并将该应用程序部署在 PaaS 环境中。
  • 初步了解 CoffeeScript,第 1 部分:入门”(developerWorks,2012 年 8 月):目前,大家对 CoffeeScript 狂热有加。CoffeeScript 是一种新的编程语言,构建于 JavaScript 之上。CoffeeScript 提供了一种简洁的语法,对 Python 或 Ruby 开发人员极具吸引力。它还提供了许多函数式编程特性,灵感来自于诸如 Haskell 和 Lisp 这类语言。CoffeeScript 可编译成高效 JavaScript,除了可在 Web 浏览器中运行 JavaScript,您还可以将它与诸如 Node.js 一类的技术相结合用于构建服务器应用程序。本系列文章由 4 部分组成,第 1 部分将初步了解 CoffeeScript 以及它为开发人员带来的特有优势。您可以构建 CoffeeScript 编译器,然后使用它来创建准备在浏览器或者服务中运行的代码。
  • 利用 CoffeeScript 和 Node 进行函数式 JavaScript 编程”(developerWorks,2012 年 3 月):利用由 CoffeeScript、Node 和 Underscore.js 组成的超级函数式脚本编写架构来掌控 Web 应用程序的复杂性。
  • developerWorks 中国网站 Java 技术专区:查找数百篇有关 Java 编程各个方面的文章。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Java technology
ArticleID=841896
ArticleTitle=Node.js 进阶测试
publish-date=10222012