我接近它的方法是在布局页面中加载 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 文件中使用在布局页面中创建的变量。