LoginSignup
1
1

More than 5 years have passed since last update.

[初心者] Node.jsでHello Worldする

Posted at

Node.jsとは?

  • 「Javascriptで動作するサーバー環境」
  • WebサーバーというとApacheやIISなどのHTTPサーバー上でPHPやASPなどを動作させる環境を思い浮かべるが、Node.jsはそれとは異なる
  • Node.jsではサーバーを作るところから実装が始まる

特徴

  • 非同期I/O、ノンブロッキングI/Oモデルを採用している
  • シングルスレッド
  • Googleの「V8」という優秀なJavascriptエンジンで動作する

Hello Worldする

(Node.jsがインストールされていることを前提としています)

とりあえずコードを写経する

hello.js

var http = require('http'); // ①

var server = http.createSever(function(req, res) {  // ②
  res.writeHead(200, {'Content-Type': 'text/plain'}); // ③
  res.write('Hello World');
  res.end();
});

server.listen(3000); // ④
console.log('サーバーを起動しました。');

コンソールで以下のコードを実行する

$ node hello.js

解説

① requireという関数でhttpオブジェクトを生成している

② httpオブジェクトのcreateServerメソッドでサーバーオブジェクトを作成する

  • createServerメソッドは引数に、サーバーリクエストを受けたときに動作させるコールバック関数を指定する(コールバック関数は、第一引数にリクエストオブジェクト、第二引数にレスポンスオブジェクトを受け取る)

③サーバーリクエストが発生した際の動作を定義する

  • writeHeadメソッドでhttpヘッダを書き出す(第一引数:ステータスコード、第二引数:ヘッダ情報の連想配列)
  • writeメソッドでhtmlコンテンツを書き出す
  • endメソッドでhttpコンテンツを出力する

④作成したサーバーオブジェクトをlistenメソッドで受け待ち状態にする

引数には使用するポート番号を指定する

メモ

  • writeHeadメソッドはデフォルト値が「200, {'Content-Type': 'text/plain'}」
  • endメソッドは引数にコンテンツ出力内容を受け取ることもできるため以下の用にも記述できる

var http = require('http);

var server = http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
});

終わり

Javascriptが好きなので個人的にNode.jsは結構楽しいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1