動かざることバグの如し

近づきたいよ 君の理想に

nodejs メモ

NodeJSインストール

直接NodeJSインストールするとあとあとバージョン管理が面倒になるとことなので「nodebrew」をつかう

Nodebrewのインストール。一発コマンド

curl -L git.io/nodebrew | perl - setup

curlなしバージョン wgetでやる場合

wget -O - git.io/nodebrew --no-check-certificate | perl - setup

.bashrcの末尾に以下の一行を追記。NODE_PATHは後述するときにつかう

export PATH=$HOME/.nodebrew/current/bin:$PATH
export NODE_PATH=$HOME/.nodebrew/current/lib/node_modules

source ~/.bashrcか再起動をしたのちに、nodebrewコマンドが使えることを確認 バイナリ形式で最新版をインストール

nodebrew install-binary latest

最後にどのバージョンを使うかを指定

nodebrew use latest

nodeコマンドが使えることを確認しておく

nodeでHello World

適当にhello.jsでも作って

var http = require('http');

var server = http.createServer(function(req, res) {
  res.end("Hello World");
});

server.listen(3000);

実行

node hello.js

これでhttp://localhost:3000/開いて表示されればおk。

Expressのインストール

Expressをグローバルインストール

npm install -g express

それだけだとExpressコマンドが叩けないので以下の一行も実行

npm install -g express-generator

ExpressでHello World

適当なディレクトリ下で

express hoge

コマンド実行後に指示に従ってcd hoge && npm install 以下を実行

node bin/www

https

別にexpressに拘る必要は全くない

var https = require('https');
var fs = require('fs');
var express = require('express');
app = express();

app.get('/', function (req, res) {
  res.setHeader('Content-Type', 'text/plain');
  res.setHeader('Content-Length', Buffer.byteLength(body));
  res.end(body);
});

var sslOptions = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt'),
  requestCert: true,
  rejectUnauthorized: false
};

var secureServer = https.createServer(sslOptions, app).listen('3000', function () {
  console.log("Secure server listening on port 3000");
});

現在のURLを取得

var body = req.protocol + '://' + req.headers.host + req.url;