Node.js/Sample
をテンプレートにして作成
LECTURE
担当科目一覧
ソーシャルデザイン概論/2024
ソーシャルデザイン演習/2024
情報デザイン論/2024
情報デザイン演習IIA/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*Node.js|Sample
~
***CONTENTS
#contents2_1
~
**Basic Application
[[Node.js]] によるWebアプリケーションの基本を説明するサン...
-httpアクセスを可能にするモジュール 'http' を準備する。
-createServer 関数を使って、サーバーを立ち上げる。
(リクエスト・レスポンスに関するプログラムも準備する。)
-listen 関数で、リクエストを待ち受ける状態にする。
サーバーというのは要するに、ブラウザから当該 IP の当該ポ...
~
***前提
-ローカル(手元のPC)でサーバーを動かすことを前提としたサ...
http://localhost:XXXXX
の形式でアクセスするので、XAMPP等が動いている場合は、衝突...
-[[Terminal]]の利用が前提です。
~
***プロジェクトフォルダの作成
-場所はどこでも構いません。サンプルを置く場所としての、プ...
-プログラムの起動は Terminal から行います。
当該フォルダを Terminal のアイコンに重ねるようにして Term...
-念の為、Node.js がインストール済みで、カレントディレクト...
$ node -v
v11.6.0
上記のようにバージョンが表示されればOKです。
ダメな場合 [[Node.js]]のページでインストールを再確認して...
~
***コーディング
-以下のコードをテキストエディタにコピーして ''application...
// MAIN Program
// HTTPオブジェクトの生成(http モジュールの読み込み)
const http = require( 'http' );
// サーバーオブジェクトの生成(イベントハンドラを定義)
var server = http.createServer( myResponse )
// loaclhost(127.0.0.1)の 8000番ポートで待機
server.listen( 8000 );
// Terminal にメッセージを出力(動作状況、停止方法の説明)
console.log('Server running at http://127.0.0.1:8000. Q...
// FUNCTION
function myResponse( request, response ) {
// ヘッダ情報を出力
response.writeHead( 200, {'Content-Type': 'text/plain...
// コンテンツを出力
response.write('Hello Node.js ! \n');
// EOF(End of File)を出力
response.end();
}
-Terminal から application.js を動かします。
$ node application.js
Server running at http://127.0.0.1:8000. QUIT > [CTRL +...
-この状態で、サーバーは動いています。
-ブラウザを起動して、URL 欄に以下を入力してみてください。
http://127.0.0.1:8000
IPアドレスの 127.0.0.1 は、ローカル・ループバック・アドレ...
-ブラウザに以下の表示が確認できると思います。
Hello Node.js!
-ターミナル上でメッセージ表示後、プロンプトも出ず、無反応...
CTRL + C
~
~
***MAIN Program の解説
-var http = require('http')
Node.js には様々な機能モジュールが用意されていて、その代...
最初の一行で、これを読み込んで、http という名称のオブジェ...
-var server = http.createServer( ここに関数名 )
httpオブジェクトの createServer メソッドを使って、server ...
createServer の引数はひとつで、ここに渡す関数にはリクエ...
-server.listen( ポート番号 );
http.Server の listen メソッドは、指定したポート番号での...
~
***FUNCTION myResponse の解説
- function myResponse( request, response ) { ここに処理内...
server オブジェクトが実際に機能するためのプログラムです。...
--request
サーバーへの要求を管理するオブジェクト(http.ClientReques...
--response
サーバーからの応答を管理するオブジェクト(http.Server.Res...
-response.writeHead( ステータスコード番号, メッセージ )
レスポンスのヘッダー情報を記述します。
--200番はステータス「正常アクセス」を意味します。
--'Content-Type': 'text/plain' は「応答内容:プレーンテキ...
-response.write( ここに応答内容を記述 );
応答内容を記述します。
-response.end( );
これで応答終了であることを伝えます。
~
**HTML Response
上記の単純応答に対し、index.html ファイルを読み込んで、そ...
~
***プロジェクトフォルダの作成
-新しいプロジェクトフォルダ(カレントディレクトリ)を準備...
-ここには、以下の2つのファイルを置く前提です。
--index.html 中身は適当で構いません。
--application.js 次の節で紹介します。
-プログラムの起動は Terminal から行います。
~
***コーディング
-以下のコードをテキストエディタにコピーして ''application...
// MAIN Program
// HTTPオブジェクトの生成( http モジュールの読み込み )
const http = require('http');
// FileSystem オブジェクトの生成( fs モジュールの読み込...
const fs = require('fs');
// request と response を格納するための外部変数
var req, res;
var server = http.createServer(myResponse)
server.listen(8000);
console.log('Server running at http://127.0.0.1:8000. Q...
// FUNCTIONS
function myResponse( request, response ) {
// request と response を格納
req = request;
res = response;
// ファイルの読み込みとコールバック関数の定義
fs.readFile('./index.html','UTF-8', writeHTML )
}
function writeHTML( err, html ){
res.writeHead( 200, {'Content-Type': 'text/html'});
res.write( html );
res.end();
}
~
-Terminal から application.js を動かします。
$ node application.js
Server running at http://127.0.0.1:8000. QUIT > [CTRL +...
-ブラウザを起動して、URL 欄に以下を入力してみてください。
http://127.0.0.1:8000
-ブラウザに以下の表示が確認できると思います。
Hello Node.js
index.html を読み込んで表示するサンプル
~
***MAIN Program の解説
- fs = require( 'fs' );
File System モジュールを読み込んで、FileSystemオブジェク...
~
***FUNCTIONS の解説
- function myResponse( request, response ) { }
server オブジェクトが実際に機能するためのプログラム。
- fs.readFile('./index.html','UTF-8', writeHTML )
--カレント(./)にある index.html を読み込む。
--読み込み終了時に実行するコールバック関数を writeHTML( )...
- function writeHTML( err, html )
--第1引数 err:読込エラー時の情報オブジェクト(ここでは...
--第2引数 html:readFile 関数で読み込んだファイルのデータ
--res.writeHead( 200, {'Content-Type': 'text/html'});
ヘッダー情報として、Content-Type が text/html であること...
--res.write( html );
読み込んだHTMLファイルの内容を応答出力
~
~
**付記
***プロンプトの復活
サーバーを起動すると、ターミナルのプロンプト $ が出ない状...
CTRL + C
~
***バックグラウンド動作の停止
ターミナルを強制的に閉じたりすると、プロセスが動きっぱな...
-プロセスの存在を確認します。
$ ps -e | grep node | awk '{print $1}'
2666
2670
-表示された数字が、プロセスのID です。これを直接 KILL し...
$ kill -9 2666
$ kill -9 2670
-以上で node 関連のプロセスが終了します。
~
***ポート番号 8000 について
サーバーへのアクセスでは、IPアドレスとポート番号のセット...
それらを含め 0番 から1023番 は ''Well-known port'' と呼...
Well-known port については、[[Network のページ>Network...
~
~
**APPENDIX
***関連ページ
-[[Node.js]]
-[[Node.js/npm]]
//-[[Node.js/Sample]]
-[[Node.js/TemplateEngine]]
-[[Node.js/Framework]]
~
~
終了行:
*Node.js|Sample
~
***CONTENTS
#contents2_1
~
**Basic Application
[[Node.js]] によるWebアプリケーションの基本を説明するサン...
-httpアクセスを可能にするモジュール 'http' を準備する。
-createServer 関数を使って、サーバーを立ち上げる。
(リクエスト・レスポンスに関するプログラムも準備する。)
-listen 関数で、リクエストを待ち受ける状態にする。
サーバーというのは要するに、ブラウザから当該 IP の当該ポ...
~
***前提
-ローカル(手元のPC)でサーバーを動かすことを前提としたサ...
http://localhost:XXXXX
の形式でアクセスするので、XAMPP等が動いている場合は、衝突...
-[[Terminal]]の利用が前提です。
~
***プロジェクトフォルダの作成
-場所はどこでも構いません。サンプルを置く場所としての、プ...
-プログラムの起動は Terminal から行います。
当該フォルダを Terminal のアイコンに重ねるようにして Term...
-念の為、Node.js がインストール済みで、カレントディレクト...
$ node -v
v11.6.0
上記のようにバージョンが表示されればOKです。
ダメな場合 [[Node.js]]のページでインストールを再確認して...
~
***コーディング
-以下のコードをテキストエディタにコピーして ''application...
// MAIN Program
// HTTPオブジェクトの生成(http モジュールの読み込み)
const http = require( 'http' );
// サーバーオブジェクトの生成(イベントハンドラを定義)
var server = http.createServer( myResponse )
// loaclhost(127.0.0.1)の 8000番ポートで待機
server.listen( 8000 );
// Terminal にメッセージを出力(動作状況、停止方法の説明)
console.log('Server running at http://127.0.0.1:8000. Q...
// FUNCTION
function myResponse( request, response ) {
// ヘッダ情報を出力
response.writeHead( 200, {'Content-Type': 'text/plain...
// コンテンツを出力
response.write('Hello Node.js ! \n');
// EOF(End of File)を出力
response.end();
}
-Terminal から application.js を動かします。
$ node application.js
Server running at http://127.0.0.1:8000. QUIT > [CTRL +...
-この状態で、サーバーは動いています。
-ブラウザを起動して、URL 欄に以下を入力してみてください。
http://127.0.0.1:8000
IPアドレスの 127.0.0.1 は、ローカル・ループバック・アドレ...
-ブラウザに以下の表示が確認できると思います。
Hello Node.js!
-ターミナル上でメッセージ表示後、プロンプトも出ず、無反応...
CTRL + C
~
~
***MAIN Program の解説
-var http = require('http')
Node.js には様々な機能モジュールが用意されていて、その代...
最初の一行で、これを読み込んで、http という名称のオブジェ...
-var server = http.createServer( ここに関数名 )
httpオブジェクトの createServer メソッドを使って、server ...
createServer の引数はひとつで、ここに渡す関数にはリクエ...
-server.listen( ポート番号 );
http.Server の listen メソッドは、指定したポート番号での...
~
***FUNCTION myResponse の解説
- function myResponse( request, response ) { ここに処理内...
server オブジェクトが実際に機能するためのプログラムです。...
--request
サーバーへの要求を管理するオブジェクト(http.ClientReques...
--response
サーバーからの応答を管理するオブジェクト(http.Server.Res...
-response.writeHead( ステータスコード番号, メッセージ )
レスポンスのヘッダー情報を記述します。
--200番はステータス「正常アクセス」を意味します。
--'Content-Type': 'text/plain' は「応答内容:プレーンテキ...
-response.write( ここに応答内容を記述 );
応答内容を記述します。
-response.end( );
これで応答終了であることを伝えます。
~
**HTML Response
上記の単純応答に対し、index.html ファイルを読み込んで、そ...
~
***プロジェクトフォルダの作成
-新しいプロジェクトフォルダ(カレントディレクトリ)を準備...
-ここには、以下の2つのファイルを置く前提です。
--index.html 中身は適当で構いません。
--application.js 次の節で紹介します。
-プログラムの起動は Terminal から行います。
~
***コーディング
-以下のコードをテキストエディタにコピーして ''application...
// MAIN Program
// HTTPオブジェクトの生成( http モジュールの読み込み )
const http = require('http');
// FileSystem オブジェクトの生成( fs モジュールの読み込...
const fs = require('fs');
// request と response を格納するための外部変数
var req, res;
var server = http.createServer(myResponse)
server.listen(8000);
console.log('Server running at http://127.0.0.1:8000. Q...
// FUNCTIONS
function myResponse( request, response ) {
// request と response を格納
req = request;
res = response;
// ファイルの読み込みとコールバック関数の定義
fs.readFile('./index.html','UTF-8', writeHTML )
}
function writeHTML( err, html ){
res.writeHead( 200, {'Content-Type': 'text/html'});
res.write( html );
res.end();
}
~
-Terminal から application.js を動かします。
$ node application.js
Server running at http://127.0.0.1:8000. QUIT > [CTRL +...
-ブラウザを起動して、URL 欄に以下を入力してみてください。
http://127.0.0.1:8000
-ブラウザに以下の表示が確認できると思います。
Hello Node.js
index.html を読み込んで表示するサンプル
~
***MAIN Program の解説
- fs = require( 'fs' );
File System モジュールを読み込んで、FileSystemオブジェク...
~
***FUNCTIONS の解説
- function myResponse( request, response ) { }
server オブジェクトが実際に機能するためのプログラム。
- fs.readFile('./index.html','UTF-8', writeHTML )
--カレント(./)にある index.html を読み込む。
--読み込み終了時に実行するコールバック関数を writeHTML( )...
- function writeHTML( err, html )
--第1引数 err:読込エラー時の情報オブジェクト(ここでは...
--第2引数 html:readFile 関数で読み込んだファイルのデータ
--res.writeHead( 200, {'Content-Type': 'text/html'});
ヘッダー情報として、Content-Type が text/html であること...
--res.write( html );
読み込んだHTMLファイルの内容を応答出力
~
~
**付記
***プロンプトの復活
サーバーを起動すると、ターミナルのプロンプト $ が出ない状...
CTRL + C
~
***バックグラウンド動作の停止
ターミナルを強制的に閉じたりすると、プロセスが動きっぱな...
-プロセスの存在を確認します。
$ ps -e | grep node | awk '{print $1}'
2666
2670
-表示された数字が、プロセスのID です。これを直接 KILL し...
$ kill -9 2666
$ kill -9 2670
-以上で node 関連のプロセスが終了します。
~
***ポート番号 8000 について
サーバーへのアクセスでは、IPアドレスとポート番号のセット...
それらを含め 0番 から1023番 は ''Well-known port'' と呼...
Well-known port については、[[Network のページ>Network...
~
~
**APPENDIX
***関連ページ
-[[Node.js]]
-[[Node.js/npm]]
//-[[Node.js/Sample]]
-[[Node.js/TemplateEngine]]
-[[Node.js/Framework]]
~
~
ページ名: