私がアプローチした方法は、レイアウトページにsocket.ioをロードすることでした。
<script src='<%= socketIoUrl %>/socket.io/socket.io.js'></script>
<script type="text/javascript">
var socket = io.connect('<%= socketIoUrl %>');
</script>
次に、動的ヘルパーを追加して、socketIoUrl
:を公開しました。
var helpers = function(app) {
app.dynamicHelpers({
socketIoUrl: function(req, res) {
return app.settings.socketIoUrl;
}
});
};
module.exports = helpers;
そのため、server.jsファイルで、環境に基づいて適切な値を設定し、ヘルパーファイルをロードしました。
app.configure('development', function(){
app.set('socketIoUrl', 'http://localhost:3003');
});
app.configure('test', function(){
app.set('socketIoUrl', 'http://...');
});
app.configure('production', function(){
app.set('socketIoUrl', 'http://...');
});
require('./apps/helpers')(app);
これsocket
で、レイアウトページで作成された変数を他のjsファイルで使用できるようになりました。