IBM i で node.js を使ってみよう!!(2)- HTMLファイルを表示させる -

前回に引き続き「Native JavaScript applications on IBM i with Node.js」を参考にしてテストしてみた結果の紹介です。


HTMLファイルの表示

最初に紹介するのは、HTTP サーバのように HTML ファイルを読み込んで表示させるプログラムです。

こちらがサーバ側で起動しているプログラム(sample_fs.js)の全文です。前回書きましたが、「ソースファイルは UTF-8 しかサポートされない」とのことですから、UTF-8 を指定して保管するようにしてください。

sample_fs.js

var http = require('http');
var fs = require('fs');
var url = require('url'); 

http.createServer(function(request, response) {

   var realPath = __dirname + url.parse(request.url).pathname;
   fs.exists(realPath, function(exists){ 
      if(!exists){ 
         response.writeHead(404, {'Content-Type': 'text/plain'}); 
         response.end("404 Not Found"); 
       } else { 
          var file = fs.createReadStream(realPath); 
          response.writeHead(200, {'Content-Type': 'text/html'}); 
          file.on('data', response.write.bind(response)); 
          file.on('close', response.end.bind(response));  
          file.on('error', function(err){ 
          response.writeHead(500, {'Content-Type': 'text/plain'}); 
          response.end("500 Internal Server Error"); 

              }); 
              // end of else and if exists
       } 
       // end of funcion(exists)
    }); 
    // end of fs.exists
}).listen(8888);
console.log('Server runnning');

↓ のような HTML ファイルを sample_fs.js と同じディレクトリに配置します。

cmd.html

<!DOCTYPE HTML> 
<html lang="ja">
        <head> 
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Node.js for i Sample</title>
        </head> 
<style> 
input {
        height:30px;
        border:#ccc solid 1px 
}
input[type="text"] {
        width:500px 
}
input[type="submit"] {
        margin:1em; 
        width:120px 
} 
</style>
<body> 
        <form name="input" action="cmd" method="get">
                <div>CLコマンドの実行</div>
                <input type="text" name="cmd" placeholder="WRKSYSSTS"/>
                <input type="submit" value="Run"/>
        </form> 
</body>
</html>

sql.html

<!DOCTYPE HTML> 
<html lang="ja">
        <head> 
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Node.js for i Sample</title>
        </head> 
<style> 
input {
        height:30px;
        border:#ccc solid 1px 
}
input[type="text"] {
        width:500px 
}
input[type="submit"] {
        margin:1em; 
        width:120px 
} 
</style>
<body> 
        <form name="input" action="query" method="get">
                <div>SQLの実行</div>
                <input type="text" name="sql" placeholder="SELECT * FROM ..."/>
                <input type="submit" value="Query"/>
        </form> 
</body>
</html>

↓ のように上記の node.js のプログラムを起動します。

cmd.html をアクセスすると、↓ のように表示されます。

sql.html をアクセスすると、↓ のように表示されます。

どちらも、SQL を入れてもコマンドを入れても処理はされません。Sample_fs.js には対応する処理が書かれていないから、ですね。


次回は、この SQL実行用の HTMLファイルからの SQL 実行リクエストを受け付けられるように、今回紹介した node.js のプログラムを変更してみようと思います。

[Top Pageに戻る]

Ads by TOK2