node.js メモ
コマンドラインで引数を受け取る
コマンドライン:
code:bash
node server.js folder
server.jsにfolderを渡す想定。
引数はprocess.argvに保存される。
process.argvプロパティはNode.jsプロセスが起動したときに渡したコマンドライン引数を含んでいる配列を返す。初めの要素はprocess.execPath。もし必要であるargv[0]の元の値にアクセスするならprocess.argv0を見ること。二番目の要素は実行されているJavaScriptファイルのパス。残りの要素は追加のコマンドライン引数。 このコマンドラインの引数を受け取るためには、例えば以下のコードを書く。
code:js
process.argv.forEach((val, index) => {
console.log(${index}: ${val});
});
Node.jsでファイルに書き込む
File System APIを使う。
code:js
const fs = require('fs');
fs.writeFile("/tmp/test", "Hey there!", function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
// Or
fs.writeFileSync('/tmp/test-sync');
コールバックを待たないで同じファイル上でfs.writeFileを複数回使うのは安全ではない。このシナリオで、fs.createWriteStreamは強く推奨される。
module.exportsの使用目的
module.exportsはrequire呼び出しの結果を返すオブジェクト。
module.exportsオブジェクトはModuleシステムによって作られる。
The module.exports object is created by the Module system. Sometimes this is not acceptable; many want their module to be an instance of some class. To do this, assign the desired export object to module.exports. Assigning the desired object to exports will simply rebind the local exports variable, which is probably not what is desired.