Node.js with Heroku                @sngmr
自己紹介
Shingo Mori森 真 吾ConnectionWorks Inc.(株)コネクションワークスTwitter: @sngmrソフトウェアエンジニア兼営業兼企画兼コンサル兼経理Titanium Chatroom Nagoya
今日のはなしは・・・
やってみたレベルです
あと・・・
Mac前提です
Herokuってなに?
What s Heroku?•PaaS•Platform   As A Service•Rails•Node.js   from June 2011•
なにがいるの?‣ Herokuアカウント‣ Macで動くNode ‣ Homebrewとかで‣ NPM(Node   Package Manager) ‣ curl http://npmjs.org/install.sh | sh‣ Herok...
さっそくやってみよう
Herokuログイン#	 Herokuはコマンド経由で操作することが多い$	 heroku	 loginEnter	 your	 Heroku	 credentials.Email:	 hoge@hoge.comPassword	 (typin...
ssh公開 の登録#	 ssh公開鍵が普通の場所にあれば、このコマンドで勝手に送ってくれる$	 heroku	 keys:addFound	 existing	 public	 key:	 /Users/hoge/.ssh/id_rsa.pub...
さぁ Hello World だ
web.jsvar	 express	 =	 require(express);var	 app	 =	 express.createServer(express.logger());app.get(/,	 function(request,	...
package.json//	 依存関係の定義{	 	 "name":	 "hnatest",	 	 "version":	 "0.0.1",	 	 "dependencies":	 {	 	 	 	 "express":	 ""	 	 	 	...
依存関係のインストール$	 npm	 installnpm	 http	 GET	 https://registry.npmjs.org/expressnpm	 http	 200	 https://registry.npmjs.org/exp...
HerokuへのアップロードはGitを使います
.gitignore$	 echo	 node_modules	 >>	 .gitignore$	 ls	 -latotal	 24drwxr-xr-x	 	 	 6	 hoge	 	 staff	 	 204	 	 5	 20	 10:42	...
Procfileweb:	 node	 web.js
動かしてみよう!
foreman start$	 foreman	 start11:06:56	 web.1	 	 	 	 	 |	 started	 with	 pid	 603711:06:56	 web.1	 	 	 	 	 |	 Listening	 o...
gitリポジトリ作成$	 git	 init$	 git	 add	 .$	 git	 commit	 -m	 "init"
Herokuアプリ作成heroku	 create	 --stack	 cedar
Herokuへpushgit	 push	 heroku	 master
簡単でしょ?
Facebookアプリも楽
ここまでの話は…https://devcenter.heroku.com/articles/nodejs
あとスライドは…http://www.slideshare.net/MoriShingo/node-vol1
せっかくMacにNode.js入ったし…
Node.js on local                   @sngmr
まずはコマンドで$	 node>
ローカルでよく使うモノ
コマンドライン引数$	 node	 arg.js	 hoge	 fuga[	 node,	 	 /Users/shingo/Projects/Node/local_base/arg.js,	 	 hoge,	 	 fuga	 ]----	 ar...
ファイルインプット ver.1$	 cat	 /etc/hosts	 |	 node	 pipe1.js----	 pipe1.js	 ----process.stdin.resume();process.stdin.setEncoding(u...
###	 Host	 Database##	 localhost	 is	 used	 to	 configure	 the	 loopback	 interface#	 when	 the	 system	 is	 booting.	 	 D...
ファイルアウトプット ver.1$	 cat	 /etc/hosts	 |	 node	 pipe1.js	 >	 hosts.copy----	 pipe1.js	 ----process.stdin.resume();process.std...
インプットアウトプット$	 node	 readwrite.js----	 reaswrite.js	 ----var	 fs	 =	 require(fs);var	 r	 =	 fs.createReadStream(/etc/hosts)...
どうゆう場面で使うの?
データ編集とか楽‣例: ‣CSVからJSONファイルを起こしたい ‣正規表現だけだと苦しいデータとか‣特に   Titanium とは相性いいよ!
インプットアウトプットvar	 fs	 =	 require(fs);function	 readLines(input,	 func)	 {	  var	 remaining	 =	 ;	 	  input.on(data,	 functio...
インプットアウトプットvar	 input	 =	 fs.createReadStream(sample1.csv);var	 data	 =	 [];readLines(input,	 	  function(line)	 {	  	  va...
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Upcoming SlideShare
Loading in...5
×

Node予備校 vol.1 名古屋

4,858

Published on

@sngmrのスライド

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,858
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Node予備校 vol.1 名古屋

  1. 1. Node.js with Heroku @sngmr
  2. 2. 自己紹介
  3. 3. Shingo Mori森 真 吾ConnectionWorks Inc.(株)コネクションワークスTwitter: @sngmrソフトウェアエンジニア兼営業兼企画兼コンサル兼経理Titanium Chatroom Nagoya
  4. 4. 今日のはなしは・・・
  5. 5. やってみたレベルです
  6. 6. あと・・・
  7. 7. Mac前提です
  8. 8. Herokuってなに?
  9. 9. What s Heroku?•PaaS•Platform As A Service•Rails•Node.js from June 2011•
  10. 10. なにがいるの?‣ Herokuアカウント‣ Macで動くNode ‣ Homebrewとかで‣ NPM(Node Package Manager) ‣ curl http://npmjs.org/install.sh | sh‣ Heroku Toolbelt ‣ Heroku Clientなどがバンドル ‣ https://toolbelt.heroku.com/‣ Gitの基礎知識
  11. 11. さっそくやってみよう
  12. 12. Herokuログイン# Herokuはコマンド経由で操作することが多い$ heroku loginEnter your Heroku credentials.Email: hoge@hoge.comPassword (typing will be hidden): Authentication successful.
  13. 13. ssh公開 の登録# ssh公開鍵が普通の場所にあれば、このコマンドで勝手に送ってくれる$ heroku keys:addFound existing public key: /Users/hoge/.ssh/id_rsa.pubUploading SSH public key /Users/hoge/.ssh/id_rsa.pub
  14. 14. さぁ Hello World だ
  15. 15. web.jsvar express = require(express);var app = express.createServer(express.logger());app.get(/, function(request, response) { response.send(Hello World!);});var port = process.env.PORT || 3000;app.listen(port, function() { console.log("Listening on " + port);});
  16. 16. package.json// 依存関係の定義{ "name": "hnatest", "version": "0.0.1", "dependencies": { "express": "" // バージョン番号 }}
  17. 17. 依存関係のインストール$ npm installnpm http GET https://registry.npmjs.org/expressnpm http 200 https://registry.npmjs.org/expressnpm http GET https://registry.npmjs.org/express/-/express-2.5.9.tgz・・・express@2.5.9 ./node_modules/express├── qs@0.4.2├── mime@1.2.4├── mkdirp@0.3.0└── connect@1.8.7 (formidable@1.0.9)
  18. 18. HerokuへのアップロードはGitを使います
  19. 19. .gitignore$ echo node_modules >> .gitignore$ ls -latotal 24drwxr-xr-x 6 hoge staff 204 5 20 10:42 .drwxr-xr-x 11 hoge staff 374 5 20 10:16 ..-rw-r--r-- 1 hoge staff 24 5 20 10:42 .gitignoredrwxr-xr-x 4 hoge staff 136 5 20 10:36 node_modules-rw-r--r-- 1 hoge staff 90 5 20 10:36 package.json-rw-r--r-- 1 hoge staff 276 5 20 10:18 web.js
  20. 20. Procfileweb: node web.js
  21. 21. 動かしてみよう!
  22. 22. foreman start$ foreman start11:06:56 web.1 | started with pid 603711:06:56 web.1 | Listening on 5000
  23. 23. gitリポジトリ作成$ git init$ git add .$ git commit -m "init"
  24. 24. Herokuアプリ作成heroku create --stack cedar
  25. 25. Herokuへpushgit push heroku master
  26. 26. 簡単でしょ?
  27. 27. Facebookアプリも楽
  28. 28. ここまでの話は…https://devcenter.heroku.com/articles/nodejs
  29. 29. あとスライドは…http://www.slideshare.net/MoriShingo/node-vol1
  30. 30. せっかくMacにNode.js入ったし…
  31. 31. Node.js on local @sngmr
  32. 32. まずはコマンドで$ node>
  33. 33. ローカルでよく使うモノ
  34. 34. コマンドライン引数$ node arg.js hoge fuga[ node, /Users/shingo/Projects/Node/local_base/arg.js, hoge, fuga ]---- arg.js ----console.log(process.argv);
  35. 35. ファイルインプット ver.1$ cat /etc/hosts | node pipe1.js---- pipe1.js ----process.stdin.resume();process.stdin.setEncoding(utf8);process.stdin.on(data, function(data) { process.stdout.write(data);});
  36. 36. ### Host Database## localhost is used to configure the loopback interface# when the system is booting. Do not change this entry.##127.0.0.1 localhost255.255.255.255 broadcasthost::1 localhost fe80::1%lo0 localhost・・・
  37. 37. ファイルアウトプット ver.1$ cat /etc/hosts | node pipe1.js > hosts.copy---- pipe1.js ----process.stdin.resume();process.stdin.setEncoding(utf8);process.stdin.on(data, function(data) { process.stdout.write(data);});
  38. 38. インプットアウトプット$ node readwrite.js---- reaswrite.js ----var fs = require(fs);var r = fs.createReadStream(/etc/hosts);var w = fs.createWriteStream(hosts2.copy);r.on(data, function(data) { w.write(data.toString().toUpperCase());});
  39. 39. どうゆう場面で使うの?
  40. 40. データ編集とか楽‣例: ‣CSVからJSONファイルを起こしたい ‣正規表現だけだと苦しいデータとか‣特に Titanium とは相性いいよ!
  41. 41. インプットアウトプットvar fs = require(fs);function readLines(input, func) { var remaining = ; input.on(data, function(data) { remaining += data; var index = remaining.indexOf(n); while (index > -1) { var line = remaining.substring(0, index); remaining = remaining.substring(index + 1); func(line); index = remaining.indexOf(n); } }); input.on(end, function() { if (remaining.length > 0) { func(remaining); } });}
  42. 42. インプットアウトプットvar input = fs.createReadStream(sample1.csv);var data = [];readLines(input, function(line) { var buf = line.split("t"); data.push(buf); }, function() { console.log(data); });
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×