繁体   English   中英

Node.js请求:REST API内的REST API调用

[英]Nodejs request : REST API call inside REST API

我正在开发REST API框架。 客户端将使用POST呼叫我的终点。 然后,我的代码将使用POST对外部系统进行其他调用。 但是,我遇到了请求库问题。 看下面的代码片段。

var express = require("express");
var app = express();
var cfenv = require("cfenv");
var bodyParser = require('body-parser');
var request = require('request');

app.use(bodyParser.urlencoded({
    extended: false
}))
app.use(bodyParser.json())
var mydb;

app.post("/token", function (req, response) {
    console.log("Call to /token");
    var token = "a"
    var headers = {
        'Content-Type': 'application/json'
    }
    var options = {
        url: 'https://xyz/oauth2//token',
        method: 'POST',
        headers: headers,
        json: {
            'key1': 'xxx',
            'key2': 'yyy'
        }
    }
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        } else {
            console.log(body)
        }
    })
    return response.send(token)

由于请求方法的异步性质,返回始终为“ a”。 如何每次都返回正确的值?

您了解了问题,下一步很容易。 在回调中调用res.send ,如下所示:

request(options, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    // Print out the response body
    console.log(body)
    res.send(body)
  } else {
    console.log(body)
  }
})

并从函数末尾删除返回

从我看到你不重新分配的值token您发布的代码示例中的变量,所以它永远是a 请详细说明您要实现的目标, token变量中要具有的内容以及要使用它做什么? 我很乐意提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM