Nodeでの非同期処理に欠かせないasync.jsの使い方メモ。
NodeはJavascriptで動くので、処理の流れがコールバックの連続になってしまう場合があります。
そんな状況を解決する為のnpm(Node Package Manager)なのです。
async.jsでは次のようなメソッドが用意されています。
# 処理を順番に実行するメソッド
* series
* waterfall
# 並列的に処理を実行するメソッド
* parallel
async.jsのインストール
まずはasync.jsをインストールしましょう。
npmのインストールには、グローバルで行ってどのプロジェクトからも使えるようにする方法と、ローカルにインストールしてプロジェクトごとに必要なものだけを使う方法があります。今回はグローバル領域を汚したくないのでローカルで行っていきます。
次のコマンドをターミナルに入力して実行します。
(グローバルでインストールしたい場合は、このコマンドに-gオプションをつけて実行してください。)
これでNodeでasync.jsを使えるようになりました。
各メソッドの使い方は次のようになります。
series
seriesメソッドは第一引数に関数を格納した配列、第二引数には第一引数の配列に格納した関数が全て実行された後に入る最終的なコールバック関数を入れます。
このメソッドを実行すると第一引数に格納した関数が順番に実行され、最後に第二引数に指定した関数が実行されます。console.logの結果は次のようになります。
function1
function2
final callback & result = arg1,arg2
第一引数の配列に格納された関数の引数のcallbackは次に実行する関数を指しています。
(function1のcallbackはfunction2を指しているってことです)
waterfall
waterfallメソッドではseriesと同じように第一引数に実行したい順番で関数を格納した配列、第二引数には第一引数の処理が全て終わった後に実行される最終的なコールバック関数を入れます。console.logの結果は次のようになります。
function1
function2
final callback & result = 2
seriesとwaterfallの違いは引数の処理の方法です。
seriesは配列に格納された関数ひとつひとつが最終的なコールバック関数に引数を渡すのに対して、waterfallでは配列に格納された関数がリレー形式で次に実行される関数に引数を渡し、最終的なコールバック関数には配列の最後の関数で指定した引数が渡されます。
parallel
parallelメソッドは名前の通りに並列的に処理を実行するメソッドです。第一引数に実行したい関数を格納した配列、第二引数に第一引数の処理が全て終わった後に実行される最終的なコールバック関数を入れます。parallelメソッドを実行すると第一引数に格納した関数が同時に実行され、全ての関数の処理が終了すると第二引数の最終コールバック関数が実行されます。
console.logの結果は次のようになります。
function1
function2
function3
function3_END
function1_END
function2_END
final callback & result = arg1,arg2,arg3
実装例
実際には次のようにNodeの処理の中に組み込みます。
kirinosima
2013/07/07
Node.jsのHelloWorld
helloworld.js
こんな感じでhelloworld.jsを作成したら、ターミナルを起動してこのファイルの置いてあるディレクトリまで移動する。
そこで次のコマンドを入力する。
これでnode.jsがlocalhostの8080番ポートに起動します。
ブラウザでhttp://localhpst:8080にアクセスすると「Hello World」の文字が表示されているはずです!
こんな感じでhelloworld.jsを作成したら、ターミナルを起動してこのファイルの置いてあるディレクトリまで移動する。
そこで次のコマンドを入力する。
これでnode.jsがlocalhostの8080番ポートに起動します。
ブラウザでhttp://localhpst:8080にアクセスすると「Hello World」の文字が表示されているはずです!
2013/07/06
Node.jsの導入
Node.jsはじめました。
その導入手順をメモしておきます。
導入方法には、
1. パッケージでインストールする
2. ターミナルでコマンドを叩く
の2つあります。1の方法だとNode.jsの公式ページに行って、インストールからパッケージを落としてくるだけなので...
ちょっと面倒ですが後々nodeの操作にターミナルのコマンドを使うようになるので、慣れる為にも2の方法で説明していきます。
注:環境はMac OS Lionで作業しています。
1. homebreのインストール
まずはターミナルにhomebrewをインストールします。
homebrewはMacのパッケージ管理システムで、ターミナルでのアプリケーションのインストールを簡単に行えるようにするものです。homebrewの機能については割愛させて貰います。
またhomebrewはXcodeを必要とするので、あらかじめインストールしておいて下さい。Xcodeが最新のバージョンでないとエラーが出る場合もあるので、アップデートしておくことも忘れずに...
でhomebrewのインストールですが、ターミナルで次のコマンドを実行します。
実行するとターミナルがインストールを開始するので、完了したら次のコマンドでbrewのヘルプを見てみましょう。
ヘルプが表示されたら、brewは正しくインストールされているということです!
2. Node.jsのインストール
ターミナルで次のコマンドを実行する。
インストール完了したら次のコマンドでnodeのバージョンを見てみましょう。
v0.10.12のようにバージョンが表示されたら、インストールは成功です。
これでNodeのインストールは完了です!
2013/07/03
Go2Shell
http://zipzapmac.com/Go2Shell
Finderで開いているディレクトリのパスからターミナルを開くことができるアプリケーション。
深い階層で作業しているときとかに超絶便利です。
起動するターミナルのアプリケーションも選択することもできます。ターミナルで
と入力すると新しいウィンドウが出てくので
「terminal application to use」という項目から使いたいアプリケーションを選択します。
あとはFinderのメニューバーにGo2Shellのアイコンをドラッグ&ドロップで追加すれば導入は完了です。
ファイルをFinderで表示してGo2Shellのアイコンをクリックすると、ターミナルが起動して自動でそのファイルまでcdしてくれます。
Finderで開いているディレクトリのパスからターミナルを開くことができるアプリケーション。
深い階層で作業しているときとかに超絶便利です。
起動するターミナルのアプリケーションも選択することもできます。ターミナルで
と入力すると新しいウィンドウが出てくので
「terminal application to use」という項目から使いたいアプリケーションを選択します。
あとはFinderのメニューバーにGo2Shellのアイコンをドラッグ&ドロップで追加すれば導入は完了です。
ファイルをFinderで表示してGo2Shellのアイコンをクリックすると、ターミナルが起動して自動でそのファイルまでcdしてくれます。
2013/06/23
ターミナルとgitのコマンドについてのメモ
【ターミナルとは】
MacでBashというシェルを使う為のCUIアプリケーション
下記のサイトがシリーズで詳しく説明してくれています。
Webデザイナーの為の「本当は怖くない」”黒い画面”入門シリーズ一覧
コマンドは大抵なにかの略称なので、セットにすると覚えやすい。
あとコマンドの後に半角スペースを入れて -hoge などとオプションを指定することもできます。
【よく使うコマンド】
【git関連のコマンド】
コマンド表は適宜追加とか整理していけたらいいなと思っています。
gitとターミナルの使い方がわかったら練習サイトとかもあるのでやってるといいんじゃないかな。
Learn Git Branching
MacでBashというシェルを使う為のCUIアプリケーション
下記のサイトがシリーズで詳しく説明してくれています。
Webデザイナーの為の「本当は怖くない」”黒い画面”入門シリーズ一覧
コマンドは大抵なにかの略称なので、セットにすると覚えやすい。
あとコマンドの後に半角スペースを入れて -hoge などとオプションを指定することもできます。
【よく使うコマンド】
コマンド | 略のもと | 説明 |
---|---|---|
cd | Change Directory | 引数で渡したパスのディレクトリに移動する。引数なしで実行するとルートディレクトリに移動する。 |
ls | List | 今いるディレクトリの中にあるファイルやディレクトリの一覧を表示する。 <オプション> -a :ドットで始まる隠しファイルも表示 -l :ファイルの詳細(パーミッション等)も表示 |
pwd | Print Working Directory | 今いるディレクトリのパスを表示する。 |
cp | Copy | ファイルやディレクトリをコピーする。 第一引数:コピーする対象の名前 第二引数:コピーして生成されるファイルの名前 |
rm | Remove | ファイルやディレクトリを削除する。 引数で削除するファイルを指定。 <オプション> -f :警告・エラーなしで削除 -i :削除するかをユーザに問い合わせてから削除 -r :ディレクトリ指定して、それごと削除 -v :削除後、処理した内容を表示 |
mv | Move | ファイルやディレクトリを移動 or 名前を変える
第一引数:もとのファイル 第二引数:移動先 or 新しい名前 |
mkdir | Make Directory | 引数に指定した名前のディレクトリを作る。 <オプション> -p :深い階層のファイルを作る 例)$ mkdir -p hoge/fuga/homhom |
rmdir | Remove Directory | 引数に指定した名前のディレクトリを削除。 |
touch | そのまま | 引数のファイルが保持している最終アクセス日時と最終更新日時を変更できる。指定したファイルが存在しないと、サイズが0の空ファイルを作成する。
たいてい空ファイル作成する為に使われるコマンド |
man | manual | 引数のコマンドのマニュアルを表示する。 コマンドに-hもしくわ--helpのオプションを付けて実行するとヘルプを表示してくれるんですが、それよりも詳細な説明を見たいときに。 |
curl | Client for URLs | 引数にURLを渡して、そのソースを表示 <オプション> -o :URLの内容をそのファイル名で保存する -f :HTTPエラーメッセージを表示せず、エラーコードを返す。 |
chown | Change Owner | ファイルやディレクトリの所有者を変更する <オプション> -R :ディレクトリを変更する際に、中のファイルやサブディレクトリも変更する |
sudo | Super User Do | 引数に渡したコマンドを管理者権限で実行する |
【git関連のコマンド】
コマンド | 説明 |
---|---|
git add | インデックスに引数のファイルを追加する |
git commit | コミットする <オプション> -m :コミットのメッセージをつける。 例)git commit -m "コミットメッセージはダブルコーテーションでくくる" |
git branch | 引数の名前のブランチを作成する。引数無しの場合、ブランチを一覧表示する。 現在の作業中のブランチには先頭に*マークがつく。 例) issue1 * master |
git checkout | 引数の名前のブランチに移動 |
git merge | 引数のブランチを現在のブランチにマージする |
コマンド表は適宜追加とか整理していけたらいいなと思っています。
gitとターミナルの使い方がわかったら練習サイトとかもあるのでやってるといいんじゃないかな。
Learn Git Branching
登録:
投稿 (Atom)