* 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 }}