3

http サーバーモジュールを使用して URL のステータスをチェックする簡単なアプリを実行しようとしています。

基本的に、これは単純な http サーバーです。

require('http').createServer(function(req, res) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end('URL is OK');
    }).listen(4000);

その中で、このセクションを使用して URL のステータスを確認します。

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log("URL is OK") // Print the google web page.
  }
})

したがって、基本的には node を起動し、ブラウザーを開き、「URL は OK」というテキストを含むコンテンツを表示したいと考えています。その後、10分ごとに更新します。

どんな助けでも大歓迎です。

4

1 に答える 1

13

ノードの一般的な戦略は、コールバック内の非同期操作の結果に依存するものをすべて配置する必要があるということです。この場合、Google が起動しているかどうかがわかるまで、応答の送信を待つことを意味します。

10 分ごとに更新するには、提供されるページにコードを書き込む必要があります。おそらく<meta http-equiv="refresh" content="30">(30s)を使用するか、 Preferred method to reload page with JavaScript?の JavaScript 手法のいずれかを使用します。

var request = require('request');
function handler(req, res) {
  request('http://www.google.com', function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log("URL is OK") // Print the google web page.
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end('URL is OK');
    } else {
      res.writeHead(500, {'Content-Type': 'text/html'});
      res.end('URL broke:'+JSON.stringify(response, null, 2));
    }
  })
};

require('http').createServer(handler).listen(4000);
于 2013-09-27T13:02:24.657 に答える