今更ながらnode.jsを始めてみた。node.jsをインストールしてnpmを入れてチュートリアルのlearnyounodeをnpmでインストールして始めた。
npm install -g learnyounode
3つ目で詰まった・・・。
第3問
同期処理 をするファイルシステムの関数を使ってファイルの改行文字(\n)の数を出力するアプリを書いてください。 cat file | wc -l と同じようなアプリです。 アプリの1つ目のコマンドライン引数は、そのファイルへのパスです。テスト用のファイルを作る必要はありません。
という問題で、回答が
var fs = require('fs');
var filename = process.argv[2]; //<- どうして2になるのかわからない。
//console.log(process.argv[2]; // undefined になる
console.log(fs.readFileSync(filename).toString().split('\n').length-1);
この回答のargv[1]でなく、argv[2]になるのかわからない・・・
argv[1]はこのファイル自身のpathを返すので、ファイルを読めるはずだけれども、argv[2]はundefinedになるので、それでreadFileSync(filename)に値が入るのかわからない。「/」扱いで、自分自身という意味になるの・・・?
var filename = process.argv[1];
console.log(fs.readFileSync(filename).toString().split('\n').length-1);
として
learnyounode verify program.js
としたらエラーが返ってきた。
続けていくうちにこの違いなど、細かいことが理解できるようになるかな?
はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-
- 作者: 松島浩道
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/03/15
- メディア: 大型本
- クリック: 15回
- この商品を含むブログ (5件) を見る