Node.js の基本を越えたクイズ

ナレッジ・パスの進み具合をテストする

Comments

この記事で行う演習とその解答は、developerWorks のナレッジ・パス「Node.js: 基本を越えて」を補足するものです。

  1. Node.js による以下の単純な 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.js プログラムは実行できないのでしょう。このプログラムのどこが悪いのでしょう。
    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 を扱うための Node.js ライブラリー
    3. JavaScript を扱いやすくするための言語として Fortran に着想を得た言語
  7. Heroku にコードをデプロイする手段は以下のうちのどれでしょう
    1. SCP
    2. FTP
    3. Git でのプッシュ
    4. カスタムのプロトコル
  8. 以下のうち、DynamoDB の Scan API を使用して行えることはどれでしょう
    1. 主キー・フィールド以外のフィールドの検索
    2. イメージのバルク・アップロード
    3. 項目内での新規属性の作成
  9. Mocha テスト・フレームワークを使用すると、同期コードと非同期コードの両方をテストすることができます
    1. 正しい
    2. 誤り
  10. dyno を追加すると、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) ->

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Java technology
ArticleID=828030
ArticleTitle=Node.js の基本を越えたクイズ
publish-date=08022012