My days of...

生活のことなど

learnyournodeのワークショップ第3問で理解できなくなってくる


今更ながら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アプリを開発する-

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-