所以我採用最常見的或推薦的方法將參數,模塊或參數傳遞到其他模塊,例如將params傳遞給模塊的最常見方法是什麼?
var crypto = require('crypto');
var express = require('express');
var mongoose = require('mongoose');
var OAuth = require('oauth').OAuth2;
var app = express();
var config = require('./config.js')(app, crypto, mongoose, OAuth);
var models = require('./models')(mongoose); /*etc.*/
還是會被認爲是更常見的延伸app
例如
var express = require('express');
var app = express();
app.crypto = require('crypto');
app.mongoose = require('mongoose');
app.OAuth = require('oauth').OAuth2;
var config = require('./config.js')(app);
var models = require('./models')(app); /*etc.*/
或者擴展其他對象並通過例如其他對象會更安全。
var express = require('express');
var app = express();
var modules = {};
modules.crypto = require('crypto');
modules.mongoose = require('mongoose');
modules.OAuth = require('oauth').OAuth2;
var config = require('./config.js')(app, modules);
var models = require('./models')(app, modules); /*etc.*/
或者,所有這些邊緣情況下,我應該採取其他方法?
我不想在每次需要在我的應用程序中使用OAuth時構建新的OAuth2實例,所以我當前在配置中創建了一個OAuth2實例,然後將配置傳遞給我的路由;我是否仍然可以這樣做,並且在每個模塊中都需要config.js
(例如routes.js
)?
謝謝,我在示例中將'global'更改爲'modules';我不打算在Node.js中使用全局對象。最後一個例子仍然是不好的做法? –
更新:),沒關係,我認爲我們應儘可能減少模塊之間的依賴關係和關係 – damphat