* Node.jsメモ [#j6d1f727]

&color(red){書きかけの記事};

#contents
-- 関連
--- [[Node.jsで簡単なWebサーバを書いてみる]]
--- [[nodejsでwebsocket]]

** Node.js のインストール [#qfd6ec54]
https://nodejs.org/ からインストール

** プラグインのインストール方法 [#zb4e8673]
#html(<div style="padding-left:20px;">)

*** package.json の作成 [#qb909ea6]
#myterm(){{
mkdir example
cd example
npm init
}}

*** プラグインのインストール [#i7675f89]
例)mkdirp をインストール
#myterm(){{
npm install mkdirp -g                         // グローバルインストール
npm install mkdirp --save-dev          // ローカルにインストール(node_modules配下にインストールされる)
}}

#html(</div>)

** 動作確認 [#h9bec290]
#html(<div style="padding-left:20px;">)
*** test.js を作成 [#rc9d5a4d]
#mycode(){{
console.log("Hello World!");
}}

*** Node.js で実行 [#ma747653]
#myterm(){{
node test.js
}}

*** 結果 [#l2448596]
#myterm(){{
Hello World!
}}
#html(</div>)


** ファイル読み込み [#b7e78795]

#mycode(){{
var fs = require('fs');
fs.readFile('./test.txt', 'utf8', function (err, text) {
    console.log(text);
    console.log(err);
});
}}

** ファイル書き込み [#ldf7eb9c]

#mycode(){{
var fs = require('fs');
var text = "TEST!!";
fs.writeFile('./test.txt', text , function (err) {
    console.log(err);
});
}}

** ファイルの追加書き込み [#sf6b7470]
#mycode(){{
var text = "TEST!!";
fs.appendFile('./test.txt', text , function (err) {
    console.log(err);
});
}}

** ファイルの同期読み込み [#r305c35b]

#mycode(){{
var fs = require('fs');
var buff = fs.readFileSync('./test.txt', 'utf8');
var text = buff.toString();
console.log(text);
}}

** ファイルの同期書き込み [#a957a0ef]
#mycode(){{
var fs = require('fs');
var text = "TEST!!";
fs.writeFileSync('./test.txt', text);
}}

** ファイルの同期追加書き込み [#kd96376a]
#mycode(){{
var fs = require('fs');
var text = "TEST!!";
fs.appendFileSync('./test.txt', text);
}}

** ディレクトリ作成 [#db78f047]

#mycode(){{
var mkdirp = require('mkdirp');
mkdirp('./path_to_dir', 0755, function (err) {
    if (err) {
     console.error(err)
    }
});
}}

** ディレクトリの同期作成 [#db78f047]

#mycode(){{
var mkdirp = require('mkdirp');
mkdirp.sync('./path_to_dir', 0755, function (err) {
    if (err) {
     console.error(err)
    }
});
}}

** メッセージ通知 [#z4174b0a]
#html(<div style="padding-left:20px;">)

*** 単純なメッセージ通知 [#v74ea09b]
#mycode(){{
var notifier = require('node-notifier');
notifier.notify({
 "title"   : "test title"
,"message" : "test message!"
});
}}

*** 通知メッセージをクリック時に任意の処理を行う [#xc2252eb]
#mycode(){{
var notifier = require('node-notifier');
notifier.notify(
    {   
      "title"   : "test title"
     ,"message" : "test message!"
     ,"wait"    : true
    }   
    ,function(err, res) {
        res = res.replace(/(\r\n|\n)/g,"");
        if (res == "Activate") {
            console.log("message click!");
        }   
    }   
);
}}

他オプションは https://www.npmjs.com/package/node-notifier を参照。

#html(</div>)

** バッチ起動 [#p1898053]

child_process を使用すると、任意のコマンドやシェルスクリプトを実行できる。
#mycode(){{
var childProcess = require('child_process');
//childProcess.exec("./test.sh arg1 arg2", function(error,stdout,stderr){     // シェルを実行する場合はカレントからの相対PATHでOK
childProcess.exec("ls -l", function(error,stdout,stderr){
    if (error){
        console.log("--error--\n" + error);
    }   
    if (stdout) {
        console.log("--sttout--\n" + stdout);
    }   
    if (stderr) {
        console.log("--stterr--\n" + stderr);
    }   
});
}}

** 簡易Webサーバ [#te7e0cff]
[[http-server(Node.js)]] を参照。


** nodebrew で nodejs を管理する [#na4b0284]

*** nodejs のインストールが既にインストールされている場合はアンインストールする [#hcd9367b]

#myterm2(){{
curl -o uninstall-node.sh https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh
chmod 755 uninstall-node.sh
./uninstall-node.sh
rm uninstall-node.sh
sudo rm -rf /usr/local/include/node
sudo rm -rf /usr/local/lib/dtrace
rm -rf ~/.node-gyp
rm -rf ~/.npm
rm -rf ~/.sourcemint 
}}

*** nodebrew のインストール [#xc94e2be]

#myterm2(){{
curl -L git.io/nodebrew | perl - setup
}}

~/.bash_profile
#myterm2(){{
export PATH=$HOME/.nodebrew/current/bin:$PATH
source ~/.bash_profile
}}

*** インストール可能な nodejs のバージョンを確認 [#l37e2175]

#myterm2(){{
nodebrew ls-remote
}}

*** nodejsをインストール [#sffa021b]

#myterm2(){{
nodebrew install-binary vX.X.X
}}

*** インストール済みのバージョンを確認 [#h0af5de8]

#myterm2(){{
nodebrew ls
}}

*** 使用するnodejsのバージョンを指定する [#ea4f27da]

#myterm2(){{
nodebrew use vX.X.X
}}



トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS