SurveyMonkey API 使用 NodeJS 创建调查

SurveyMonkey API Create a Survey using NodeJS

我使用 NodeJS/Express 创建了一个小型服务器,我正在使用 node-fetch 与 SurveyMonkeys API 进行交互。我目前在我的帐户上有两个调查,我可以通过他们的邮递员 collection 查看。但是当我尝试使用自己的端点时,它似乎不起作用。查看所有调查的 GET 请求 returns 状态代码为“200”,但响应为:

{
    "size": 0,
    "timeout": 0
}

创建调查的 POST 请求为我提供了状态代码“400”,但 returns 得到了相同的响应。到目前为止,这是我的代码。

const router = require("express").Router();
const fetch = require("node-fetch");
const TOKEN = process.env.SM_ACCESS_TOKEN;
const BASEURL = process.env.SM_BASEURL;

const options = method => ({
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    "Content-Type": "application/json",
    method: method
  }
});

/*
GET a list of surveys
*/
router.get("/", async (req, res) => {
  try {
    const surveys = await fetch(`${BASEURL}surveys`, options("GET"));
    console.log(surveys);
    if (surveys) {
      return res.status(200).json(surveys);
    }
  } catch (err) {
    console.log(err);
    res.status(500).send({ message: "Server error", err });
  }
});

router.post("/create-survey", (req, res) => {
  const surveyData = req.body;

  fetch(`${BASEURL}surveys`, {
    method: "POST",
    body: surveyData,
    headers: {
      Authorization: `bearer ${TOKEN}`,
      "Content-Type": "application/json"
    }
  })
    .then(data => {
      return res.status(data.status).json(data);
    })
    .catch(err => console.log(err));
});

module.exports = router;

附加信息: 我能够使用 SurveyMonkey 提供的 POSTMAN collection 和我的访问令牌来完成所有这些操作。 BASEURL =“https://api.surveymonkey.com/v3/”。 ServeyData = { "title": "Some Title" }

通过退出 node-fetch 并使用 axios 解决了这个问题。我认为可能是 fetch vs xhr 请求。