スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

web拍手 by FC2   

Windows上にNode.js環境を作った 前編

Node.jsをWindowsで用意してみたのでその作業メモを残しておきます。
インストールして、TwitterのStreamingAPIを使うまでを行います。前編ではexpressのセットアップまで、後編ではローカルホストでWebアプリを動かすところまでやっていきます。
なお、使用しているOSは「Windows7 Professional 32ビット」です。64ビットやWindows7以外のOSの場合は画像やパスなどが異なる可能性があります。

まずかるーく下調べをします。このあたりを丸コピ参考にしていきましょう。
◇ node.js + socket.ioでTwitterのStreaming APIを使ってみる
http://d.hatena.ne.jp/replication/20120318/1332044327

◇ Windows+Node.js+Socket.IO
http://www.koikikukan.com/archives/2012/01/10-015555.php


第一歩はNode.jsのインストールからです。
公式サイト( http://nodejs.org/ )から.msi形式のWindowsインストーラをダウンロードします。
20120802_1.jpg 20120802_2.jpg
それを起動するとインストール画面が出ます。
20120802_3.jpg 20120802_4.jpg 20120802_5.jpg
・・・?特に設定なしでインストールが始まりました。
20120802_6.jpg
無事に終わったようです。「To run Node.js open command prompt (cmd.exe), and run'node'」とあるので、PATHの設定も自動でされているのでしょう。
20120802_7.jpg
探してみると、"C:\Program Files\nodejs\"にインストールされているようです。

次にファイルを作ってー・・・ちょっとまった、Node.jsにはexpressという雛形メイカーがあるらしいです

コマンドプロンプトを開き、適当なフォルダに移動します。
C:\Users\XXXXX>mkdir C:\NodePrograms\
C:\Users\XXXXX>cd C:\NodePrograms\
C:\NodePrograms>

このNodeProgramsフォルダで今後もいろいろやっていくことにします。

次にexpressコマンドで雛形を作ってもらいます。
C:\NodePrograms>express -t ejs NodeTwitter
'express' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\NodePrograms>

えーと。えーと。つまりはexpressが入っていない、ということですかね。
ではexpressのインストールをしましょう。少し検索すると色々必要らしい、のですが、ここで「npm」を使ってみます。
npmとは、Node.jsに備わっている「NodePackageManager」のことですね。

まずはコマンドを調べましょう。
C:\NodePrograms>npm -h

Usage: npm <command>

where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, deprecate, docs, edit, explore, faq,
find, get, help, help-search, home, i, info, init, install,
la, link, list, ll, ln, login, ls, outdated, owner, pack,
prefix, prune, publish, r, rb, rebuild, remove, restart, rm,
root, run-script, s, se, search, set, show, shrinkwrap,
star, start, stop, submodule, tag, test, tst, un, uninstall,
unlink, unpublish, unstar, up, update, version, view,
whoami

npm <cmd> -h quick help on <cmd>
npm -l display full usage info
npm faq commonly asked questions
npm help <term> search for help on <term>
npm help npm involved overview

Specify configs in the ini-formatted file:
C:\Users\XXXXX\.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@1.1.45 C:\Program Files\nodejs\node_modules\npm

C:\NodePrograms>npm install -h
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install <pkg>
npm install <pkg>@<tag>
npm install <pkg>@<version>
npm install <pkg>@<version range>

Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
If no argument is supplied and ./npm-shrinkwrap.json is
present, installs dependencies specified in the shrinkwrap.
Otherwise, installs dependencies from ./package.json.

はい。
どうやら、「npm install パッケージ名」で大丈夫なようです。
C:\NodePrograms>npm install express
npm http GET https://registry.npmjs.org/express
npm http 200 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-3.0.0rc1.tgz
npm http 200 https://registry.npmjs.org/express/-/express-3.0.0rc1.tgz
npm http GET https://registry.npmjs.org/connect/2.4.1
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
npm http GET https://registry.npmjs.org/cookie/0.0.4
npm http GET https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.0.3
npm http GET https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/connect/2.4.1
npm http GET https://registry.npmjs.org/connect/-/connect-2.4.1.tgz
npm http 200 https://registry.npmjs.org/mkdirp/0.3.3
npm http 200 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/cookie/0.0.4
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http 200 https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/fresh/0.1.0
npm http 200 https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http GET https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-2.4.1.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 200 https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http 200 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/send/0.0.3
npm http GET https://registry.npmjs.org/send/-/send-0.0.3.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http 200 https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.0.3.tgz
npm WARN package.json methods@0.0.1 No README.md file found!
npm WARN package.json connect@2.4.1 No README.md file found!
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.4.2
npm http GET https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 200 https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/mime/-/mime-1.2.6.tgz
npm http 200 https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
npm http 200 https://registry.npmjs.org/qs/0.4.2
npm http GET https://registry.npmjs.org/qs/-/qs-0.4.2.tgz
npm http 200 https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz
npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.6.tgz
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.4.2.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz
express@3.0.0rc1 node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.0.3 (mime@1.2.6)
└── connect@2.4.1 (bytes@0.1.0, pause@0.0.1, qs@0.4.2, formidable@1.0.11)

C:\NodePrograms>express -h
'express' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

むむ?
少し調べましょうか。
"node.js に npm で express をインストールして試す"
http://d.hatena.ne.jp/tilfin/20110926/1317014251

なるほど。-g オプションが必要らしいです。npm install -h しても出て来なかったじゃんこれ…
というわけで一旦消して、再度入れ直します。
C:\NodePrograms>npm uninstall express

C:\NodePrograms>npm install -g express
中略
C:\Users\XXXXX\AppData\Roaming\npm\express -> C:\Users\XXXXX\AppData\Roaming
\npm\node_modules\express\bin\express
express@3.0.0rc1 C:\Users\XXXXX\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.0.3 (mime@1.2.6)
└── connect@2.4.1 (bytes@0.1.0, pause@0.0.1, qs@0.4.2, formidable@1.0.11)

二度目はhttpステータスが304なので、キャッシュされているのでしょう。一度目よりも早く終わりました。
そして、なにかパス名が出て来ました。このパスを確認してみましょう。
20120802_9.jpg

express.cmdとかいういかにもあやしいそれっぽいファイルができてますね。
C:\NodePrograms>express -h

Usage: express [options]

Options:

-h, --help output usage information
-V, --version output the version number
-s, --sessions add session support
-e, --ejs add ejs engine support (defaults to jade)
-J, --jshtml add jshtml engine support (defaults to jade)
-H, --hogan add hogan.js engine support
-c, --css <engine> add stylesheet <engine> support (less|stylus) (defaults to plain css)
-f, --force force on non-empty directory

はい、無事にexpressコマンドが入っているようです。

前半はここまで。
後半は引き続き、expressコマンドで雛形作成、nodeサーバの起動、ntwitter・socket.ioを使ったStreamingAPIの試し書き、とやっていきます。

2012/08/05 追記
後編書きました -> http://stersblog.blog15.fc2.com/blog-entry-421.html

web拍手 by FC2   

コメントの投稿


非公開コメント

コメント

STERS's Development Room

STERSの開発室っぽい何か。


プロフィール

Name:STERS
Unity3D/C#/PHP/js/C++/VB
などを勉強中です

[STERS's Room]
[ファイル置き場]

カテゴリー
最近の記事
最近のコメント
カレンダー
05 ≪│2017/06│≫ 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
RSSリンクの表示
ブログ内Google検索
Google
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。