Node.js-使app.js中的数组在模块中可用

时间:2014-06-14 03:16:32

标签: javascript node.js

在我的Node app.js中,我没有必要让我的数组openConnections全局...但我希望它在app.js中并且可以通过模块sse_server.js访问{{ 1}}功能。我怎样才能做到这一点?

app.js:

sseStart

sse_start.js:

var express = require('express');
var morgan = require('morgan');
var fs = require("fs");
var createDomain = require("domain").create;
var app = express();



app.use(express.static(__dirname + '/app/static/views'));
app.use(express.static(__dirname + '/app/static'));
app.use(express.static(__dirname + '/app/images'));
app.use(express.static(__dirname + '/app'));

var openConnections = [];
var sseStart = require(__dirname + '/app/scripts/sse_server.js');

app.get('/subscribe', sseStart);

var callAllApiAndSave = require('./app/scripts/api_scripts/call_all_api.js');
var db = require(__dirname + '/app/data/db.js');

var mainDomain = new createDomain();

mainDomain.run(function () {
    mainDomain.on('error', function() {
        console.log('yoyoyoyoyoyoyoyoyoyoyoyoyoyoyo');
    });
    mainDomain.on('error', function(er) {
        console.log('error, but oh well', er.message);
    });
    db.connectDatabase();
    setInterval(callAllApiAndSave, 120000);
    var server = app.listen(9000, function() {
            console.log('Listening on port %d', server.address().port);
    });
});

1 个答案:

答案 0 :(得分:2)

查看您发布的代码openConnections仅用于sse_start.js,为什么不把它放在那里?

如果你真的想在这两个文件之间共享那个数组,你可以把它放在一个单独的模块中,并在app.js和sse_start.js中需要它。