SlideShare a Scribd company logo
JAWS FESTA Kansai 2013 出張版
大阪Node学園七時限目
ゼロからはじめる
node.js
2013/09/28
Agenda
1. はじめに
2. node.jsの概要
3. node.jsの特徴
4. はじめようnode.js
5. node packaged modules
6. サーバサイド環境としてのnode.js
7. コーディングツールとしてのnode.js
8. node.jsとAWS
9. 今後の予定
10. 宣伝
はじめに
想定対象者
これからnode.jsを触り始めようという方
リンクは です
上の例をのぞいてスライド内のリンクはクリックで外部のサイトが開きます
この色
自己紹介
渡辺俊輔
フリーランスWebエンジニア
大阪Node学園主催
Blog :
質問、訂正な ありましたら下記から うぞ
google+
twitter
gmail
A Node in Nodes
大阪node学園
@craftgear
craftgear@gmail.com
node.jsの概要
node.js
正式名称 node
生まれてから4年
runs javascript
javascriptで処理を書く
runs on google V8
google v8上で動く
v8はchromeに乗っているjavascriptエンジン
without DOM
DOMはない
with APIs
ファイル操作な のAPIがある
Node.js v0.10.18 Manual & Documentation
二つの側面
サーバサイド環境としてのnode.js
コーディングツールとしてのnode.js
javascriptの実行環境
node.jsの特徴
高いハフォーマンス
I/Oバウンドな処理のみ
非同期処理
従来のLL言語はほぼすべて同期処理
javascriptは生まれながらにして非同期
豊富なモジュール
node packaged modules
https://npmjs.org/
活発なコミュニティ
主に欧米
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 manager
npmモジュールの管理を行う
個別モジュールのインストール
モジュールのアンインストール
※ 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モジュール
express
restify
sailsjs
WebSocketサーバ
ws
Socket.IO
SockJS
データベースアクセス
(driver)
node-mongodb-native
redis
node-postgres
node-mysql
データベースアクセス
(ODM/ORM)
mongoose
sequalize
bookshelf
jugglingdb
テストフレームワーク
mocha
nodeunit
QUnit
ユーティリティ
... and more and more
underscore
async
johnny-five
コーディングツールとしてのnode.js
メタ言語
coffee-script
jade
less
ユーティリティ
... and more and more
UglifyJS
jshint
grunt
yeoman
モジュールを活用しよう
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)
Thank you!
photo by from flickrLance Johnson
Ad

More Related Content

What's hot (20)

Nodeについて
NodeについてNodeについて
Nodeについて
Natsuki Yamanaka
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
 
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Akihiro Kuwano
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
 
ビルド職人の朝は早い
ビルド職人の朝は早いビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しい
Akihiro Kuwano
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
 
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Akihiro Kuwano
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
 
ビルド職人の朝は早い
ビルド職人の朝は早いビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しい
Akihiro Kuwano
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
 

Similar to 大阪Node学園 七時限目 「ゼロからはじめるnode.js」 (20)

Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
 
20120914 デブサミ関西2012
20120914 デブサミ関西201220120914 デブサミ関西2012
20120914 デブサミ関西2012
Keiji Kamebuchi
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
 
後期講座01
後期講座01後期講座01
後期講座01
Takenori Nakagawa
 
Bp study39 nodejs
Bp study39 nodejsBp study39 nodejs
Bp study39 nodejs
Yohei Sasaki
 
JavaとScalaとGroovyと
JavaとScalaとGroovyとJavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
ko ty
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LT
normalian
 
大阪Node学園八時限目 「コーディングのためのjade」
大阪Node学園八時限目 「コーディングのためのjade」大阪Node学園八時限目 「コーディングのためのjade」
大阪Node学園八時限目 「コーディングのためのjade」
Shunsuke Watanabe
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
 
node.js入門
node.js入門node.js入門
node.js入門
risa buto
 
JavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメJavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメ
Satoshi Takami
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
Takayoshi Tanaka
 
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
慎二 山田
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
Yusaku Kinoshita
 
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
好洋 山崎
 
Jsのビルド環境
Jsのビルド環境Jsのビルド環境
Jsのビルド環境
fourside
 
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
Yusuke Yamada
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
 
20190324vvvvオフ会
20190324vvvvオフ会20190324vvvvオフ会
20190324vvvvオフ会
Saya Katafuchi
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
 
20120914 デブサミ関西2012
20120914 デブサミ関西201220120914 デブサミ関西2012
20120914 デブサミ関西2012
Keiji Kamebuchi
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
 
JavaとScalaとGroovyと
JavaとScalaとGroovyとJavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
ko ty
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LT
normalian
 
大阪Node学園八時限目 「コーディングのためのjade」
大阪Node学園八時限目 「コーディングのためのjade」大阪Node学園八時限目 「コーディングのためのjade」
大阪Node学園八時限目 「コーディングのためのjade」
Shunsuke Watanabe
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
 
node.js入門
node.js入門node.js入門
node.js入門
risa buto
 
JavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメJavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメ
Satoshi Takami
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
Takayoshi Tanaka
 
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
慎二 山田
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
Yusaku Kinoshita
 
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
好洋 山崎
 
Jsのビルド環境
Jsのビルド環境Jsのビルド環境
Jsのビルド環境
fourside
 
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
Yusuke Yamada
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
 
Ad

大阪Node学園 七時限目 「ゼロからはじめるnode.js」