→モダンJavaScript
→JavaScript関連ツール
公式 †
入門記事 †
Tips †
- Node.js : exports と module.exports の違い(解説編) 2011.12
- exports は module.exports と同じ実体を参照している。
- exports は module.exportsが(隠蔽された)関数の引数として渡ってきているもの
- 同様に module も(隠蔽された)関数の引数として渡ってきているもの
- だから、モジュール用のjsの中で exports や module 自体に値を設定しては行けない(通常、関数の中で引数の書き換えをやるべきではない。Javaならconstつけるところ)
DBアクセス †
Sequelize †
npm †
Express †
- reqire()の戻り値と コンストラクタ、express.Router() の戻り値の違い。
- require()の戻り値はシングルトンオブジェクトで、Router()の戻り値は普通の new と同様である模様
- test code
var express = require('express');
var express2 = require('express');
express.a = '1st express instance';
console.log('express.a=' + express.a);
console.log('express2.a=' + express2.a); // 上と同じ結果となり、requireの戻り値はシングルトンであることがわかる
// app instance test
var app = express();
app.a = '1st app instance';
var app2 = express();
console.log('app.a=' + app.a);
console.log('app2.a=' + app2.a); // undefined になるので new をつけなくても別インスタンスになる
// router instance test
var router = express.Router();
router.a = '1st router instance';
var router2 = express.Router();
console.log('router.a=' + router.a);
console.log('router2.a=' + router2.a); // undefined になるので やはり別インスタンスになる
- 実行結果
express.a=1st express instance
express2.a=1st express instance
app.a=1st app instance
app2.a=undefined
router.a=1st router instance
router2.a=undefined
Deno †
その他 †
|