大阪node学園 七時限目 「ゼロからはじめるnode.js」
DESCRIPTION
JAWS FESTA Kansai 2013でのスライドです。 node.jsの概要から主なモジュールの紹介、ElasticBeanStalkでのアプリケーション実行までを紹介しています。TRANSCRIPT
JAWS FESTA Kansai 2013 出張版
大阪Node学園七時限目
ゼロからはじめる
node.js2013/09/28
Agenda1. はじめに2. node.jsの概要3. node.jsの特徴4. はじめようnode.js5. node packaged modules6. サーバサイド環境としてのnode.js7. コーディングツールとしてのnode.js8. node.jsとAWS9. 今後の予定
10. 宣伝
はじめに
想定対象者
これからnode.jsを触り始めようという方
リンクは です
上の例をのぞいてスライド内のリンクはクリックで外部のサイトが開きます
この色
自己紹介
渡辺俊輔
フリーランスWebエンジニア大阪Node学園主催Blog :
質問、訂正な ありましたら下記から うぞ
google+twittergmail
A Node in Nodes
大阪node学園@[email protected]
node.jsの概要
node.js正式名称 node生まれてから4年
runs javascriptjavascriptで処理を書く
runs on google V8google v8上で動く
v8はchromeに乗っているjavascriptエンジン
without DOMDOMはない
二つの側面
サーバサイド環境としてのnode.jsコーディングツールとしてのnode.js
javascriptの実行環境
node.jsの特徴
高いハフォーマンス
I/Oバウンドな処理のみ
非同期処理
従来のLL言語はほぼすべて同期処理javascriptは生まれながらにして非同期
活発なコミュニティ
主に欧米
node.jsの採用例
eBay, LinkedIn, Microsoft, Yahoo なnode.jsを利用している企業、団体の一覧
非同期処理がもたらす恩恵
豊かなエコシステム
はじめようnode.js
インストール
バイトリをダウンロードして解凍するのが早くて簡単
自分でコンハイルしたい人はnodebrewとかhttp://nodejs.org/download/
まず覚えたいこと
2つのコマンドnodeコマンドnpmコマンド
2つの概念コールバック関数
イベントドリブン
nodeコマンドnode.jsの本体スクリプトを実行する
バージョン表示
スクリプト実行
対話環境
> node --version
v0.11.6
> node hello.js
Hello!
> node
> console.log('Hello!');
Hello!
npmコマンドnode package managernpmモジュールの管理を行う
個別モジュールのインストール
モジュールのアンインストール
※ Macのhomebrewでnode.jsをインストールした場合にはnpmコマンドの実行にsudoが必要
> npm install less
> npm uninstall less
コールバック関数
jQueryで 馴染み
jQueryのdocument.readyの例
jQueryでの呼び名はネンドラ
node.jsでのファイル読み出しの例
4行目から7行目のfunctionがコールバック関数
$( document ).ready(function() {
// Handler for .ready() called.
});
1
2
3
var fs = require('fs');
fs.readFile(__dirname + '/ong6.txt', {encoding: 'utf-8'}
, function (error, result) {
console.log(result);
process.exit();
}
);
1
2
3
4
5
6
7
8
イベントドリブン
こちらもjQueryで 馴染み
jQueryの例documentがreadyになったらネンドラを実行する
node.jsの例ファイルを読み込ん らコールバック関数を実行する
何かの状態になった → 何かの処理をする
|| ||イベント発生 → コールバック関数を実行
nodeとnpmの二つのコマンドを使う
コールバックスタイルに慣れよう
node packaged modules
モジュールの探し方
npm search でモジュールを探せる
ウゥブサイトを利用すると便利
キーワードでインクリメンタルサーチ
フォーク数、スター数な でソート可能
カテゲリから探せる
しばらく落ちている模様
本家サイト
検索結果の総数が出ない上、ソートが出来ないので使い らい
> npm search less
nipster
node toolbox
npmjs.org
サーバサイド環境としてのnode.js
Webサーバ標準のhttpモジュールexpressrestifysailsjs
WebSocketサーバwsSocket.IOSockJS
データベースアクセス
(driver)
node-mongodb-nativeredisnode-postgresnode-mysql
データベースアクセス
(ODM/ORM)
mongoosesequalizebookshelfjugglingdb
テストフレームワーク
mochanodeunitQUnit
ユーティリティ
... and more and more
underscoreasyncjohnny-five
コーディングツールとしてのnode.js
ユーティリティ
... and more and more
UglifyJSjshintgruntyeoman
モジュールを活用しよう
Githubのフォーク数、スター数、最終更新日を見る
node.jsとAWS
Elastic Beanstalk自分でサーバを作る必要がない
オートスケーリング
対応言語Java .NET node.js Python PHP Ruby
参考:5ステップでらくらく!アプリ開発者のためのクラウド まかせ構築術
Elastic Beanstalk環境の作成
からElasticBeanstalkを選択
自動で構築が始まるのでしばらく待つ
グリーンになったら完了Default Environmentのリンクをクリックすると起動中のサーバにアクセスできる
マネジメントコンソール
node.jsのバージョンをあげる起動時のデフォルトが0.8.24なので0.10.10に変更する
ConfigurationのEditボタンをクリックする
Software Configurationの歯車をクリック
Node versionに0.10.10と入力ページ下部のsaveボタンをクリックすると自動
で環境のアップデートが始まる
最新バージョンはドキュメントににひっそりと書いてある
自作アプリのアップロード
app.jsを含むファイル一式をzipにまとめるこのときディレクトリ とzipにしないこと、"Failed to find package.json"というエラーの原因になる
Upload and Deployボタンをクリックする
ファイルを選択をクリックし、先ほ 作ったzipファイルを選択する
Deployをクリックすると自動でアップデートが始まる
Elastic Beanstalkを使うとnode.jsアプリケーションのデプロイも簡単
今後の予定
大阪Node学園八時限目 node.jsみちしるべ10/28 Innovation EGG 第一回勉強会 出張版
宣伝
半年ほ 前に本を書きました
HTML5とJavaScriptによるiPhone/Android両対応アプリ開発ガイド(DESIGN & WEB TECHNOLOGY)