如何在Express Server中进行API调用

时间:2019-10-09 05:23:32

标签: node.js express axios

我正在尝试在快递服务器中发出get请求,当前该服务器仅打印所有发布请求,并且可以正常工作,问题是当发出GET请求时,响应返回为“ undefined”

var env = process.env.NODE_ENV || "development";
var config = require("./config")[env];

const express = require("express");
const bodyParser = require("body-parser");
const axios = require("axios");
const app = express();

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

const hostname = config.server.host;
const port = config.server.port;

app.post("/", (req, res) => {
  console.log(req.body);
  res.sendStatus(200);

  axios
    .get("https://reqres.in/api/products/3")
    .then(response => {
      console.log(response);
    })
    .catch(error => {
      console.log(error.response);
    });
});

app.listen(port, hostname, () =>
  console.log(`Server running at http://${hostname}:${port}/`)
);

2 个答案:

答案 0 :(得分:0)

使用Postman将Api呼叫发送到服务器。我在下面附加了链接。

  • 如果您使用的是chrome,请安装Postman chrome扩展程序。
  • 使用Localhost:port服务器和post方法并添加变量以发布查询

希望这会有所帮助。

此外,只需在您的代码中添加此调整,然后在适当的localhost上侦听,

var env = process.env.NODE_ENV || "development";
var config = require("./config")[env];

const express = require("express");
const bodyParser = require("body-parser");
const axios = require("axios");
const app = express();

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

const hostname = config.server.host;
const port = config.server.port;

app.post("/", (req, res) => {
  console.log(req.body);
  res.sendStatus(200);

  axios
    .get("https://reqres.in/api/products/3")
    .then(response => {
      console.log(response);
    })
    .catch(error => {
      console.log(error.response);
    });
});

app.listen(1337, function(){
  console.log('Express listening on port', this.address().port);
});

答案 1 :(得分:0)

执行了以下代码

    axios .get("https://reqres.in/api/products/3") 
.then(response => { console.log(response); }) 
.catch(error => { console.log(error.response); })

它已执行且工作正常。

我的猜测是,在您的情况下,它会遇到障碍

更改以下行

.catch(error => {
      console.log(error.response);
    });

.catch(error => {
      console.log(error);
    });

然后查看是否正在打印错误。没有为错误分配响应对象,可能是您收到undefined