Node.js

【Windows】node.jsをインストールしてnpmコマンドを使えるようにする。

Windowsマシンへのnodeのインストールはnodistを使うと幸せになれる。

  • まずはコマンドプロンプトを起動して下記gitコマンドを実行。
    ※コマンドプロンプトからgitコマンドが使えるようになっていることが前提。
    ※windowsへのgitインストール方法はこちら
  • 完了したら、nodist\binフォルダまでのパスを通す。

※windowsのパスの通し方詳細はこちら

  • nodistまでのパスをNODIST_PREFIXとして環境変数に追加する。

  • コマンドプロンプトを再起動してupdateコマンドを実行
  • これでnodeの最新版がインストールされる。完了後、nodeコマンドとnpmコマンドが使えるようになる。

  • 使えるようになっているかどうかの確認は下記コマンドで行う。

それぞれコマンド実行後、バージョンが表示されればOK。

【socket.io/Express】でのセッション共有。

が下記に詳しく書いてあったのでペタリ。

http://jxck.hatenablog.com/category/node.js?page=1315638604

 

【Node.js/Apache】一つのサーバーで双方を共存させる。

Node.jsとApacheを一つのサーバーで共存させるためには、apache側かNode側のいずれかでリバースプロキシを構築してやる必要がある。
今回はNode.jsのsocket.ioを用いたwebsocket通信を行いたかったので、評判の良いNodeのプラグイン「http-proxy」を導入してみた。

今回の想定はNodeのアプリケーションをポート3000番、
Apacheのアプリを9000番で動作させる想定。

まずはhttpd.confのリッスンポートとバーチャルホストのポートを80番以外に避難させる。

・/etc/httpd/conf/httpd.conf

NameVirtualHost *:9000
Listen 9000

そしてバーチャルホストの設定も変更。

<VirtualHost *:9000>
    ServerName example.local
    DocumentRoot /path/to/root/dir
    RewriteEngine On
    <Directory "/path/to/root/dir">
        Options Indexes FollowSymlinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

次にNodeのサーバースクリプトを書く。

var httpProxy = require('http-proxy');

var proxy = httpProxy.createProxy();

var options = {  
    'hoge.local.lcl': 'http://localhost:9000',
    'fuga.local.lcl': 'http://localhost:9000',
    'piyo.local.lcl': 'http://localhost:9000',

    'node.local.lcl': 'http://localhost:3000'
}

require('http').createServer(function(req, res) {
    
    if (req.headers.host == 'nodechat.local.lcl') {
        proxy.ws(req, socket, head, {
            target: options[req.headers.host]
        });
    } else {
        proxy.web(req, res, {
            target: options[req.headers.host]
        });
    }
    
}).listen(80);

console.log('Proxy works.');

あとはこのスクリプトをnodeコマンドで起動すればOK。

 

【Node.js】socket.ioでリアルタイムアプリケーションを作成する。

socket.ioをインストールしてサンプルアプリケーションを真似してみる。

詳細は下記。

http://socket.io/get-started/chat/

onとemitの概念が理解できればめっちゃ簡単。

 

【Node.js】でSQLインジェクションを防ぐ方法。

を調べていたらこんな投稿を発見。

http://stackoverflow.com/questions/15778572/preventing-sql-injection-in-node-js

The node-mysql library automatically performs escaping when used as you are already doing.

ということで、node-mysqlのライブラリは自動的にエスケープ処理をしてくれているとのこと。

これで安心だね。

 

【Node.js】mysqlに接続する。

めも。

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'admin',
    database: 'hoge'
});

// mysqlに接続する。
connection.connect(function(err) {
    // 接続完了。

    // もろもろの処理

    // コネクションクローズ
    connection..end();
});

SQLを発行したい場合は下記の通り。

var data = {
    title: 'test',
    name: 'bob',
    age: 18
};

// connection.query()を実行した時点でSQLは実行されている。
var query = connection.query('insert into tableName set ?', data, function(err, result) {

});

// queryには生成されたSQLが入っているので、ログ出力するとみることが出来る。
console.log(query);

ちなみにquery()メソッドの中でconnect()メソッドが自動で走るため、事前にconnect()を記述していると2重コネクションになりエラーとなるので注意。

 

【Node.js/AngularJS】でアプリケーションを開発する。

下記ページがとてもわかり易い。
上から順に真似していけば雰囲気がすぐにつかめる。
※Angular側の知識がある程度無いと辛いかもしれません。

http://scotch.io/tutorials/javascript/creating-a-single-page-todo-app-with-node-and-angular

これは本当に素晴らしいエントリーです。

 

【Node.js】Node.jsのインストール手順まとめ。

1, まずはNode.jsのバージョン管理を行ってくれる「nvm」をインストールする。

$ git clone git://github.com/creationix/nvm.git ~/.nvm

2, 次にnvmコマンドが使えるようにパスを通す。

$ source ~/.nvm/nvm.sh

3, nvmコマンドの動作確認を行う。「nvm help」と打ってエラーがでなければOK。

$ nvm help

4, nvmコマンドでNode.jsをインストール。

「nvm ls-remote」を実行すると、ダウンロード可能なNode.jsのバージョンリストを取得することが出来る。

$ nvm ls-remote

リスト表示された中から好きなバージョンを選んでインストールすれば良い。
ちなみにNode.jsは偶数バージョンが安定版、奇数バージョンが開発版となっている。
エントリー作成時では「v0.10.28」が安定版の最新だったので今回はそれをインストールする。

$ nvm install 0.10.28

ゲージが100%になればインストール完了。下記コマンドを実行してバージョンが表示されれば問題なく完了。

$ node -v
v0.10.28

5, nvmの設定をする。

nvmコマンドはターミナルを再起動してしまうと、同様の手順を踏まないと使えないため、自動で使えるような設定を行う。

まずはデフォルトのNode.jsのバージョンを指定する。

$ nvm alias default v0.10.28

「~/.bash_profile」を編集して、ターミナル起動時にnvmコマンドが適用されるように設定する。

$ vim ~/.bash_profile

ファイル内のどこでもいいので下記を追記。

if [[ -s ~/.nvm/nvm.sh ]];
    then source ~/.nvm/nvm.sh
fi

これでひと通りのインストールと設定は完了。
あとはプロセスをデーモンとして動作し続けるforeverとかを入れたりするとよりベター。