如何解决使用NodeJ的Request模块将AUTH令牌存储在其他模块可访问的NodeJ中
我正在尝试使用NodeJs的请求模块将Node应用程序与DataStax-Cassandra在线DB驱动程序连接,并使用它们提供的方法进行连接。
后面的代码如下:
const request = require('request-promise');
var jar = request.jar();
var saveAuthToken;
var auth_token;
/* Fetch auth token from Datastax */
const options = {
method: 'POST',url: 'https:/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us-east1.apps.astra.datastax.com/api/rest/v1/auth',headers: {
accept: '*/*','content-type': 'application/json','X-Cassandra-Request-Id' : '2XXXXXXX0-dc89-47e2-XXXX-84aXXXXXXXXXXXX9'
},body:{username: 'database_username',password: 'database_password'},json:true
};
function callback(error,response,body){
if (error) throw new Error(error);
saveAuthToken = JSON.stringify(body.authToken)
console.log(saveAuthToken)
}
request(options,callback)
控制台日志给出以下输出:
"dxxxxc71-xxxx-xxxx-xxxx-4xxxxxxxd"
应该作为标题传递给我与DataStax进行交互,修改或创建表或行的下一个请求。
问题在于存储的变量saveAuthToken仅可通过该模块使用,即使导出该变量后,我也无法在其他节点模块中访问该变量值。
到目前为止我做了什么
request(options,callback)
.then(function(){
console.log('db-auth',saveAuthToken)
module.exports = auth_token;
})
.catch(function(err){
console.log('error',err)
})
一个导出变量为我提供了其他模块中的全部请求有效负载,而不仅仅是一个auth令牌。
我也尝试过使用request.jar()方法并在其中设置一个cookie。但无法在我的其他模块中获得价值。
任何注意将不胜感激。预先感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。