Javascript 从节点JS中的回调函数设置/访问全局变量

Javascript 从节点JS中的回调函数设置/访问全局变量,javascript,node.js,express,Javascript,Node.js,Express,我将Node JS与Express一起使用。我有一个回调帖子,它接收用户的用户名和密码,从另一个回调中生成一个令牌。我的问题是全局(跨应用程序)访问此令牌 我看到了这个问题。我知道AJAX是异步的。我正在尝试访问其他JS文件中的变量t。在任何JS文件上都没有使用“use strict”pragma,因此全局变量的使用或声明不是问题(我猜)。我对使用全局变量引起的设计/维护问题没有意见,因此导出/局部变量不是我的解决方案。此外,我希望能够从外部回调函数访问此变量(不使用req/sessions变量

我将Node JS与Express一起使用。我有一个回调帖子,它接收用户的用户名和密码,从另一个回调中生成一个令牌。我的问题是全局(跨应用程序)访问此令牌

我看到了这个问题。我知道AJAX是异步的。我正在尝试访问其他JS文件中的变量t。在任何JS文件上都没有使用“use strict”pragma,因此全局变量的使用或声明不是问题(我猜)。我对使用全局变量引起的设计/维护问题没有意见,因此导出/局部变量不是我的解决方案。此外,我希望能够从外部回调函数访问此变量(不使用req/sessions变量)


我错过了什么?(我可以从else部分访问令牌)

如果其他用户使用该功能会发生什么?令牌覆盖?为什么你应该使用作为一个全球性的?是否可以将一些代码放在使用位置?
我在这里缺少什么?
如果没有处理异步的东西,您的其他文件将永远无法知道该值是否已经可用,或者是否仍然挂起,即使它们可以访问它。解决方案:创建承诺,导出它,并在值可用时解决它。或者,为了解决jesusgn90提到的问题,请导出一个函数,该函数返回一个解析令牌的承诺。@jesusgn90,如果它解决了手头的核心问题:在其他JS文件中访问该令牌;我不介意。这是一个内部应用程序,因此不会同时投入生产并被许多用户使用。@Thomas这是一个有效的解决方案,请将其添加为答案。
app.post('/custom', function (req, res, next) {
    //Get Username, password using body parser
    authService1.getToken({
        url: config.url
    }, function (err, token) {
        if (err) {
            next(err); //handling error
        } else {
            setToken(token);
            res.send(token);
            //token is accessible here 
        }
    });
});

function setToken(token) {
    global.t = token;
}