访问nodejs中的JSON对象时出错

我有一个名为“UserSessions.js”的variablesvar sessions = {} 。 我正在使用一个唯一的时间戳来维护sessions = {}中每个用户的一些信息。 我已经导出这个variables使其可用于其他文件。

当我访问主文件“app.js”中sessions = {}时 ,一切正常。

但是,当我尝试从另一个文件'Sessiongreet.js'访问相同的variables,它会给出错误。

以下是我如何访问数据:

假设“2017-04-07T11:55:40.162Z”是仅分配一次的唯一时间戳。

在app.js中:

这工作正常:

const UserSessions=require('./UserSessions.js'); sessionId='2017-04-07T11:55:40.162Z'; var data=UserSessions.sessions[sessionId].context; 

在sessionGreet.js中:

这给了错误:

 const UserSessions=require('./UserSessions.js'); sessionId='2017-04-07T11:55:40.162Z'; var data=UserSessions.sessions[sessionId].context; 

我知道UserSessions.sessions [sessionId] .context存在,因为它可以在app.js文件中访问,然后在另一个文件中访问它。

这是我得到的确切的错误:

 TypeError: Cannot read property '2017-04-07T11:55:40.162Z' of undefined at initSession (/media/row_hammer/sessionGreet.js:24:33) at Object.run (/media/row_hammer/sessionGreet.js:67:2) at Object.handlePostback (/media/row_hammer/sessionTemp.js:89:19) at runPostback (/media/row_hammer/app.js:113:15) at /media/row_hammer/app.js:161:3 at Object.findOrCreateSession (/media/row_hammer/UserSessions.js:83:4) at Bot.bot.on (/media/row_hammer/app.js:159:15) at emitThree (events.js:116:13) at Bot.emit (events.js:194:7) at Bot._handleEvent (/media/row_hammer/node_modules/messenger-bot/index.js:254:10) 

另外,在sessionGreet.js中:

 //EVEN this line shows 'undefined' console.log(UserSessions.sessions); 

为什么我得到这个错误,即使stream程是正确的?

这可能是app.js和Sessiongreet.js在不同的文件夹中。

'./UserSessions.js'表示UserSessions.js与发出require()的文件在同一个文件夹中。

如果app.js与UserSessions.js位于同一文件夹中,但是Sessiongreet.js位于不同的文件夹中,则可以解释您的问题。