シェアする

【nodejs】 簡単にhttp,httpsサーバを立てる

シェアする

node

最近nodejsにハマっている、最近得た知識としてhttp,httpsサーバを立てる方法を備忘録として。

通常httpサーバを立てる場合、以下の様な方法で立てるのが一般的だと思う(多分)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(80, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

しかし【connect,serve-static】を利用する事で更に簡単かつ指定フォルダ内のhtmlを読み込んでくれる様になった(http://127.0.0.1/ としたらindex.htmlが読み込まれる /hogehoge.html ならhogehoge.htmlを読み込んでくれる)

var connect = require('connect'),
    serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("パスは相対パスで書ける ./html"));
app.listen(80);

expressを使えばええやんというツッコミは置いといて これで簡単にhttpサーバを組める

私の様にまだexpressを知らない人でもhtmlファイルをポンポン置いてテストが出来る、httpsサーバの場合はちょっと面倒になるが以下の様にして同様にディレクトリ内のhtmlを読み込む様に出来る

var fs = require('fs');
var pk = fs.readFileSync('./privatekey.pem');
var pc = fs.readFileSync('./certificate.pem');
var opts = { key: pk, cert: pc };
var port = 443;
var serve = serveStatic('./html');

var https = require('https'),
    finalhandler = require('finalhandler'),
    serveStatic = require('serve-static');

var server = https.createServer(opts,function(req, res){
  var done = finalhandler(req, res)
  serve(req, res, done)
});

server.listen(port);

httpsの場合は証明書を読み込む関係で少々長くなるが、これで出来る

こうする事で上記方法でブラウザからの接続用サーバを立ち上げて、別にsignal用サーバとして

//httpシグナルサーバ
var sig_http = require('http').Server();
sig_http.listen(9001);

//httpsシグナルサーバ
var sig_https = require('https').Server(opts);
sig_https.listen(9002);

のように立ち上げてnodejsのみでWEBサーバ立ち上げと連携が出来る、初歩的な知識だと思うけどとても便利。

元々デスクトップアプリケーションをメインに開発していたのでWEBベースの開発もとても面白いと気が付いた今日この頃、UWPでもjavascriptで組めるらしいので良い機会

スポンサーリンク

シェアする

フォローする

スポンサーリンク