【Node】Node.js ~ 基本編 / あれこれ ~

■ はじめに

https://dk521123.hatenablog.com/entry/2018/06/05/211900
https://dk521123.hatenablog.com/entry/2018/06/06/191400

の続き。

目次

【1】設定を外部ファイルから取得するには
【2】URLによって処理を変える

【1】設定を外部ファイルから取得するには

構文

外部ファイルの内容

exports.【キー】=【値】

読み込み

var settings = require('【外部ファイル】');
settings.【キー】

サンプル

settings.js

exports.port='18080';
exports.host='127.0.0.1';

hello.js

// HTTPモジュールを呼び出す
var http = require('http');

// ★外部ファイルから取得★
var settings = require('./settings.js');
console.log(settings);

var server = http.createServer();

server.on('request', function(request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.write('Hello World!');
  response.end();
});

server.listen(settings.port, settings.host);
console.log("Server listening...");

【2】URLによって処理を変える

構文

外部ファイルの内容

server.on('request', function(request, response) {
  var result;
  switch (request.url) {
    case '/【パス1】':
      // 【処理1】
      break;
    case '/【パス2】':
      // 【処理2】
      break;
    default:
      // 【処理3】
      break;
  }
});

サンプル

hello.js

// HTTPモジュールを呼び出す
var http = require('http');
var settings = require('./settings.js');
console.log(settings);

var server = http.createServer();

server.on('request', function(request, response) {
  var result;
  switch (request.url) {
    case '/hello':
      result = 'Hello!';
      break;
    case '/world':
      result = 'World!!';
      break;
    default:
      result = 'Thanks!!!';
      break;
  }
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.write(result);
  response.end();
});

server.listen(settings.port, settings.host);
console.log("Server listening...");

出力結果

ブラウザで以下をアクセスする 

http://127.0.0.1:18080/hello

Hello!

http://127.0.0.1:18080/world

World!!

http://127.0.0.1:18080/aaa

Thanks!!!

【3】HTMLファイルを読み込む

構文

// File Systemジュールを呼び出す
var fileSystem = require('fs');

fileSystem.readFile(__dirname + '/【パス】', 'utf-8', function(error, data) {
  // 処理
});

サンプル

helloworld.html

<html>
<body>
<h1>Hello World!!!!</h1>
</body>
</html>

hello.js

// HTTPモ/File Systemジュールを呼び出す
var http = require('http'),
    fileSystem = require('fs');

// 外部ファイルから取得
var settings = require('./settings.js');
console.log(settings);

var server = http.createServer();

server.on('request', function(request, response) {
  fileSystem.readFile(__dirname + '/helloworld.html', 'utf-8', function(error, data) {
    if (error) {
      response.writeHead(404, {'Content-Type': 'text/plain'});
      response.write('Not Found...');
      response.end();
    } else {
      response.writeHead(200, {'Content-Type': 'text/html'});
      response.write(data);
      response.end();
    }
  });
});

server.listen(settings.port, settings.host);
console.log("Server listening...");

関連記事

Node.js ~ 基礎知識 / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/06/05/211900