本番環境で使うなら
サーバサイド JavaScript が語られる時、大抵は node の話が出てきて
PC 上でも JavaScript が動く→サーバ開発用としても使える
みたいなストーリーになっているのだが、 現実的に言えば、そのままでは使えない。
思い出して欲しいのだが、そもそも JavaScript は非同期のクセの強いスクリプト系言語だ。
これだけでも使い勝手が悪い上、エラーが出るとプログラム自体が停止してしまう、というおおよそサーバー開発用言語としては不向きな弱点を持っている。
この弱点を回避するためには、停止した際に復旧する仕組みなどが必要なのだが、最近では pm2 の評判がいいようだ。
ところで、pm2 をグローバルでインストールするとき、sudo つけないとできなくない?
実用的にも
sudo npm install -g pm2
でいいと思うんだが。(詳しい使い方はこの記事あたり参照)
ちなみに pm2 の p はプロセスの p でしょう。
(ここでいうことではないかもしれないが、特異な言葉の使い方は周囲から理解されにくくなるのでやめた方がいいと思う。何言ってるかわからん人はリンク記事読んでください。通常、「スレッド」というべきところを「プロセス」と言っちゃているので、内容にはそそられるところがあったが、結局、読むのをやめてしまったっていう話です)
SSL 化
本番で使うなら、SSL 化は必須。
これも(今となっては)使えない書き方している記事は多い。
Express 3 以降は以下のように書き方になるらしい。
var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();
// your express configuration here
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(8080);
httpsServer.listen(8443);
StackOverFlow より。
秘密鍵 server.key とサーバー証明書 server.crt を sslcert というフォルダに配置して読み込むだけでいい。
こういうことができる node 環境は素晴らしいと思う。
しかし、こういう情報を海外筋から入手しないといけないというのは少々いただけない。
愚痴
少々、愚痴っぽいテイストが入っているので、この際だから言わせてもらうと、ある程度、この業界でちゃんと生きていきたければ
C と Unix
に関しては、イロハ+α 程度のスキルは身につけておいてほしい。
なんで、突然、こんなことを言い出したかといえば、某会社経由で「C や Unix ? あー、彼なら、余裕っすよ。経験あります」という触れ込みで配属された人が、まるっきりできていなかったから(笑・・えない)。
(続く)