heroku+node.jsでHello Worldしてみた(3)

さらに続きです。

14.変数の扱いを見てみる

プログラムを以下のように修正してみました。

var express = require("express");
var app = express();
//app.use(express.logger());
var count = 1;

app.get('/', function(request, response) {
	response.send('Hello wonderful Heroku world! <BR />'
      + 'あなたのアクセスは' + count + '回目です');
    count++;
})

var port = process.env.PORT || 5000;
app.listen(port, function() {
	console.log("Listening on " + port);
});

ローカルで実行してみます。

~/heroku/hello-heroku $ foreman start
14:09:38 web.1 | started with pid 5102
14:09:38 web.1 | Listening on 5000

リロードするたびに数値が増えます。

Screenshot-Mozilla Firefox-3

次に、デプロイしてみます。

~/heroku/hello-heroku $ git add .
~/heroku/hello-heroku $ git commit -m "counter edition"
[master 925a6e3] counter edition
 1 file changed, 4 insertions(+), 1 deletion(-)
~/heroku/hello-heroku $ git push heroku master
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 378 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
(途中略)
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: 
remote: -----> Compressing... done, 6.1MB
remote: -----> Launching... done, v5
remote:        https://whispering-lake-8767.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy.... done.
To https://git.heroku.com/whispering-lake-8767.git
   760e08d..925a6e3  master -> master
~/heroku/hello-heroku $ heroku open
Opening whispering-lake-8767... done

 

ブラウザが開いたのでリロードしてみます。

Screenshot-Mozilla Firefox-4

やはりリロードするたびにカウンタが増えます。しばらくは実行環境が維持されるようです。確か、何時間かで実行環境が消える(表現が適切ではないかも)と書いてあったので永続的な値はデータベースに頼るべきなのでしょうが、実験レベルであれば変数でもいいのかもしれません。

15.GETメソッドのパラメータ渡しをみてみる

hello.jsを以下のように改変。
ここの記事を参考にさせてもらいました。request.param(パラメータ名)で容易に取得できるようです。他にもExpressの使い方でいろいろ参考になる記載がたくさんありますので、後でじっくり読ませてもらいたいと思います。

var express = require("express");
var app = express();
//app.use(express.logger());
var count = 1;

app.get('/', function(request, response) {
    console.log(request.query); // for logging
    var username = request.param('username');
	response.send('Hello wonderful Heroku world! <BR />'
      + 'あなたのアクセスは' + count + '回目です<BR />'
      + username );
    count++;
})

var port = process.env.PORT || 5000;
app.listen(port, function() {
	console.log("Listening on " + port);
});

 

ローカルでテスト。

~/heroku/hello-heroku $ foreman start
15:28:14 web.1  | started with pid 6050
15:28:14 web.1  | Listening on 5000
15:30:08 web.1  | {}
15:30:08 web.1  | Thu, 23 Jul 2015 06:30:08 GMT express deprecated req.param(name): Use req.params, req.body, or req.query instead at hello.js:8:28
15:30:57 web.1  | { username: 'tomono' }
15:31:39 web.1  | { username: 'ともの' }

 

1回目はパラメータなし、2回目以降はパラメータ付きでテストしました。下記は2回目、3回目のスクリーンショットです。

Screenshot-Mozilla Firefox-5

Screenshot-Mozilla Firefox-6

 

日本語(Unicodeでしょう)も大丈夫な感じですね。
herokuにデプロイして試してみます。

~/heroku/hello-heroku $ git add .
~/heroku/hello-heroku $ git commit -m "parameter test edtion"
[master 043fb81] parameter test edtion
 1 file changed, 4 insertions(+), 1 deletion(-)
~/heroku/hello-heroku $ git push heroku master
Counting objects: 5, done.
  (途中略)
To https://git.heroku.com/whispering-lake-8767.git
   925a6e3..043fb81  master -> master
~/heroku/hello-heroku $ heroku open
Opening whispering-lake-8767... done

 

アクセスして試してみます。

Screenshot-Mozilla Firefox-7

Screenshot-Mozilla Firefox-8

Screenshot-Mozilla Firefox-9

無事にローカルと同様に動作しました。GETメソッドでのパラメータ渡しも簡単にできそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)