Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快线及;多个文件中需要相同的对象_Javascript_Node.js_Express - Fatal编程技术网

Javascript 快线及;多个文件中需要相同的对象

Javascript 快线及;多个文件中需要相同的对象,javascript,node.js,express,Javascript,Node.js,Express,我制作了一个web应用程序,其中所有服务器端都位于同一个文件中。 要明确的是,在我的“app.js”中,我有: 快线 Socket.io事件及更多 不同的对象对页面事件作出反应 我想重做那个项目,把事情做好,我开始这样做。我已经把我的路线放在不同的js文件中,比如login.js、subscribe.js等等。。。在路由目录中 在我的app.js中,我添加了一行:require('./routes')(app) 我在/routes中有一个index.js文件,我把我的“快速路由器”放在那里,

我制作了一个web应用程序,其中所有服务器端都位于同一个文件中。 要明确的是,在我的“app.js”中,我有:

  • 快线
  • Socket.io事件及更多
  • 不同的对象对页面事件作出反应
我想重做那个项目,把事情做好,我开始这样做。我已经把我的路线放在不同的js文件中,比如login.js、subscribe.js等等。。。在路由目录中

在我的app.js中,我添加了一行:
require('./routes')(app)

我在/routes中有一个index.js文件,我把我的“快速路由器”放在那里,它管理着我所有的路由

index.js 这是处理路线的正确方法吗

我遇到的问题是,我有一个名为
usersConnected{}
的对象,当一个成员登录时,我用一些属性填充它,等等。。。 这个对象在我的app.js文件中,我无法从其他文件(如login.js)访问它

app.js login.js
  • usersConnected

    // If login and password matches with couple in database
                usersConnected[login] = {
                    games: rows[0].games,
                    kills: rows[0].kills,
                    deaths: rows[0].deaths,
                    statut: "ACCUEIL",
                    adversaire: "NULL",
                    socket: "NULL",
                    wsId: "NULL",
                    room: "NULL",
                    lsid: funcs.computeRandomLsId(64)
                };
    
  • 以及我如何导出“路线管理”

    我有一些想法,但我认为这是一种不好的方式,比如将我的对象导出到我需要的地方,或者将我的对象单独放在一个将被导入的.js文件中,等等

  • 如果你能给我一些线索,这对我真的很有帮助


    编辑:我认为我的问题在于我管理会话的方式,因为
    usersConnected
    包含所有已连接用户的所有信息。。。也许我应该使用express会话

    我建议您看看express生成器:。它为您提供了一个非常好的文件结构。尽管它相当固执己见,但我发现它在我开始时非常有用,现在仍然如此

    在app.js文件中,您会发现如下内容:

    ...
    var routes = require('./routes/index');
    app.use('/', routes);
    
    如果你有很多路线,这就有点乏味了。这里有一个代码片段,可以通过友好的方式实现这一点

    无论如何,关键是快速发电机将帮助您消除疑虑,并为您指明正确的方向

    // If login and password matches with couple in database
                usersConnected[login] = {
                    games: rows[0].games,
                    kills: rows[0].kills,
                    deaths: rows[0].deaths,
                    statut: "ACCUEIL",
                    adversaire: "NULL",
                    socket: "NULL",
                    wsId: "NULL",
                    room: "NULL",
                    lsid: funcs.computeRandomLsId(64)
                };
    
    exports.get = (req, res) => {
      if (!req.session.login)
           ...
    }
    
    ...
    var routes = require('./routes/index');
    app.use('/', routes);