LemonteaのUnity部屋

C#とかのお話です~

Node.js入門 自作モジュールの作成 exports

こんにちは。レモンティーです。

今回は、自作モジュールの作成です。

exportsオブジェクトを使うことで自作のプロパティーや関数などを
モジュール化して別のファイルから使用できます。

使い方はいつもと同じでrequire('path')を使います。

使用例は以下のようになります。

mycal.js(モジュール化したいファイル)

exports.sum = function(a,b){
    return a+b;
}

exports.mul = function(a,b){
    return a*b;
}

test.js(ここで先ほど作成したモジュールを使用する。)

var http = require('http');
var mycal = require('./mycal');

http.createServer(function(req,res){
    res.writeHead(200,{'Content-type':'text/plain'});
    res.write(`${mycal.sum(10,20)} ${mycal.mul(10,20)}`);
    res.end();
}).listen(8080);

console.log('working');


実行すると
30 200
と表示されます。


今回はこれでおしまいです。

www.sawalemontea.com

Node.js入門 npmでパッケージの管理

こんにちは。レモンティーです。

今回はnpmによるパッケージの管理です。

前回までに登場したモジュールはBuiltInモジュールといって
Node.jsで最初から使えるモジュールでした。

Node.jsにはそれ以外にも色々な人が作ったモジュールがあり
インストールして使用することができます。

インストールには専用のPackageManagerである
npmを使います。
npmはNode.jsと一緒にインストールされますので
別途ダウンロードなどは必要ありません。

npmでパッケージをインストールするには
次のコマンドを使います。

npm install パッケージ名

https://www.npmjs.com/
で欲しいパッケージを探すことができます。



自分がインストールしているパッケージの名前とバージョンを見るには
次のコマンドを使います。

npm list --depth=0

//グローバルはこっち
npm list --depth=0 -g




今回はこれでおしまいです。

www.sawalemontea.com

Node.js入門 イベントの発火と受け取り Eventsモジュール

こんにちは。レモンティーです。

今回はEventsモジュールを使います。

EventsモジュールのEventEmitterオブジェクトを使うと
イベントの発火や受け取りができます。

//発火
eventEmitter.emit('eventName');

//受け取り(毎回受け取る)
eventEmitter.on('eventName',eventHandler); 

//受け取り(最初の一回だけ)
eventEmitter.once('eventName',eventHandler); 

//解除(指定したeventHandler。同じHandlerが複数登録されていた場合は最後の)
eventEmitter.removeListener('eventName',eventHandler);

//解除(そのイベントの全てのeventHandler)
eventEmitter.removeAllListeners('eventName');

eventHandlerはイベント発火時に実行したい関数です。


今回はこれでおしまいです。

www.sawalemontea.com

Node.js入門 ファイルの読み書き・削除・リネーム FileSystemモジュール

こんにちは。レモンティーです。

今回はFileSystemモジュールでファイル操作をします。

fsモジュールではこれまでに使ったファイル読み込みの他にも
書き込み、削除、リネーム…など色々できます。

読み込み

これまではreadFileSyncでサーバをつくる前に同期的に読み込んでいましたが、
サーバでの処理ではreadFileを使うことで非同期的に読み込みます。
これはファイルへのアクセスのような時間のかかる処理を同期的に行うと
その完了まで待機することになりパフォーマンスが低下するためです。

しかし非同期だと普通に次の行からファイル読み込みの続きを書いても
意図した順番に実行されるとは限りません。
なのでファイル読み込みが完了したら行いたい続きの処理を
readFileメソッドの引数で渡します。
callBack関数というやつです。

readFile('path',function(error,data){
    //読み込み完了時の処理
});

読み込んだデータはdataに格納されます。
もしエラーが発生したらその情報がerrorに格納されます。

書き込み

writeFileで非同期的に書き込みができます。
pathで指定されたファイルが存在しなかった場合は作成されます。

fs.writeFile('path', 'text', function (err) {
    //書き込み完了時の処理
});

appendFileで既存の文章にテキストを追加できます。
pathで指定されたファイルが存在しなかった場合は作成されます。

fs.appendFile('path', 'text', function (err) {
  //書き込み完了時の処理
});

削除

unlinkメソッドでファイルを削除できます。

fs.unlink('path', function (err) {
  //完了時処理
});

リネーム

renameメソッドでファイルの名前を変更できます。

fs.rename('path', 'new name', function (err) {
    //完了時処理
});

今回はこれでおしまいです。
www.sawalemontea.com