将GET请求中的数据另存为变量

时间:2019-03-26 17:46:00

标签: javascript node.js http get axios

我有一个使用Azure Directline 3.0的简单axios GET请求。 GET请求将回拉数据并将其显示在控制台中(如图所示)。 我要保存到变量中的数据是sessionId。然后我想将此变量与另一个JS文件中的Axios Post一起使用以作为链接的一部分进行发布,例如let URL = "https://directline.botframework.com/v3/directline/conversations/"+convID"/activities"。使用convID作为我希望创建的变量。现在,我正在用新的会话ID手动更改convID,但是我想创建一个变量,以便将其放置在javascript帖子中,这样它是自动的。enter image description here

2 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题。最简单的方法是,将数据公开在共享对象window.convID = convID上,然后在需要时访问它。 您还可以尝试制作singleton对象,该对象只能实例化一次,因此将在应用程序的整个生命周期内共享其变量。

axios.get(/* URL */).then(res => {
  window.convID = res.data.conversationId;
});

答案 1 :(得分:0)

您可以将该变量值保存在LocalStorage中。像这样:

let routeToYourApi = '/api/conversations'; // or something like this...
axios.get(routeToYourApi).then((response) => {
    let conversationId = response.data.conversationId; // not sure if data object from your image is directly nested inside response that you get from server, but you get the idea...
    window.localStorage.setItem("convId", conversationId);
}) // here you can fetch your conversation id

比您可以在应用程序中的任何位置访问它:

let conversationId = window.localStorage.getItem("convId");

...,最后将其从本地存储中删除:

window.localStorage.removeItem("convId")

希望这对您有帮助!