人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下node.jsのコードを実行すると
nの値が1,3,5,7,9...のようになります。
1,2,3,4,5...のように期待しているのですが
どこが原因でしょうか。
node.jsのバージョンはv0.10.26です。
よろしくお願いいたします。

var http = require('http'),
fs = require('fs'),
ejs = require('ejs');
var settings = require('./settings');
var server = http.createServer();
var template = fs.readFileSync(__dirname + '/public_html/hello.ejs', 'utf-8');
var n = 0;
server.on('request', function(req, res) {
n++;
var data = ejs.render(template, {
title: "hello",
content: "<strong>World!</strong>",
n: n
});
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
server.listen(settings.port, settings.host);
console.log("server listening ...");


●質問者: FujiiRock
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● yo-chan
●50ポイント

どうやって検証しているのでしょうか。
もしもブラウザで検証しているのであれば、ブラウザは開いた時にpath自身へのリクエストとfaviconへのリクエストもするので、2つのリクエストがほぼ同時のタイミングで飛ぶことになります。

以下のように変更して内容を確認してみてください。

server.on('request', function(req, res) {
console.log('Request url : ' + req.url);
console.log('n : ' + n);
n++;
var data = ejs.render(template, {
title: "hello",
content: "World!",
n: n
});


FujiiRockさんのコメント
ご回答ありがとうございました。 おっしゃるとおり、いただいたコードで実行しましたら、 path自身へのリクエストとfaviconへのリクエストがデバッグにでていました。 (検証はブラウザです) ただ、一方で、以下dotinstallみていたのですが、 そこでは1,2,3,4というようになっていました。 この違いは、nodeのバージョンの違いなのか、chromeのバージョンの違い なのか、それともなのでしょうかね^^; http://dotinstall.com/lessons/basic_nodejs/26210

yo-chanさんのコメント
nodeのバージョンの違いでこうなることは考えにくいので、browserの違いじゃないかと思います。

質問者から

ご回答ありがとうございました。

おっしゃるとおり、いただいたコードで実行しましたら、
path自身へのリクエストとfaviconへのリクエストがデバッグにでていました。
(検証はブラウザです)

ただ、一方で、以下dotinstallみていたのですが、
そこでは1,2,3,4というようになっていました。

この違いは、nodeのバージョンの違いなのか、chromeのバージョンの違い
なのか、それともなのでしょうかね^^;
http://dotinstall.com/lessons/basic_nodejs/26210


2 ● alfa-gadget
●50ポイント ベストアンサー

ただ、一方で、以下dotinstallみていたのですが、
そこでは1,2,3,4というようになっていました。

この違いは、nodeのバージョンの違いなのか、chromeのバージョンの違い
なのか、それともなのでしょうかね^^;

favicon がキャッシュされているのだと思います。
同じドメインで適当なページで favicon の設定したページを表示した後にこのプログラムを動かしてみたら1,2,3,4となると思います。


FujiiRockさんのコメント
ああ、そういうことでしたか。ありがとうございます。確認してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ