【问题标题】:Nodejs - Pass variables between functions (Post with Ndeedle)Nodejs - 在函数之间传递变量(使用 Ndeedle 发布)
【发布时间】:2021-09-01 00:26:55
【问题描述】:

我正在使用 Needle 进行 POST http,然后我需要接收响应(它的某个键)并在另一个 POST 请求中使用它。

const needle = require('needle');
const x = needle.post('https://example.com/connect/token' ,
   {
       grant_type: 'password',
       username: 'some_user_name',
       password: 'some_password' , 
       client_id : 'swaggerui',
       client_secret : 'no_password',
   }
   , (err, res) => 
   {
       if (err) 
       {
           console.error(err);
       };
       console.log((res.body).access_token);
   }

);

现在我需要将 ((res.body).access_token) 放入某个 var 并在另一个 POST 中再次使用它,我该如何实现?

【问题讨论】:

  • 好吧,你已经得到它并在另一个函数 (console.log) 中使用它。那么用你想要的函数替换console.log有什么问题呢?
  • 对不起,我对 JavaScript 不熟悉,我现在正在学习它,我正在尝试这样做,你能告诉我你的意思吗?

标签: javascript node.js api post


【解决方案1】:

有三种方法。

并在另一个 POST 请求中使用它。

  1. 您将第二个 POST 放在第一个请求的回调中:
const needle = require('needle');
needle.post('https://example.com/connect/token' ,
   {
       grant_type: 'password',
       username: 'some_user_name',
       password: 'some_password' , 
       client_id : 'swaggerui',
       client_secret : 'no_password',
   }
   , (err, res) => 
   {
       if (err) 
       {
           console.error(err);
       };
       else {
           needle.post('<url>', {
               key: res.body.access_token
           });
       }
   }

);
  1. 您可以定义一个回调函数,使 第二个 POSTres.body.access_token 作为参数传递给它。
const callback = (access_token) => {
    // ...
    doSomethingWithAccessToken(access_token);
    // ...
}

needle.post('<url>', {
    // ...
}, (err, res) => {
    // ...
    callback(res.body.access_token);
})
  1. 您定义了一个全局变量,并在回调函数中将其值设置为res.body.access_token
// ...
var access_token = "";
needle.post('<url>', {
    // ...
}, (err, res) => {
    // ...
    access_token = res.body.access_token
});

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2020-07-02
    • 2013-04-09
    • 2013-03-07
    • 1970-01-01
    • 2017-03-01
    • 2019-09-12
    相关资源
    最近更新 更多