我使用NodeJS / Express创建了一个小型服务器,并且正在使用node-fetch与SurveyMonkeys API进行交互。我目前在我的帐户上有两项调查,可以通过他们的邮递员收藏进行查看。但是,当我尝试使用自己的端点时,它似乎不起作用。查看所有调查的GET请求返回状态码“ 200”,但响应为:]
{
"size": 0,
"timeout": 0
}
创建调查的POST请求给我一个状态代码“ 400”,但返回相同的响应。到目前为止,这是我的代码。
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集合以及访问令牌来完成所有这些操作。 BASEURL =“ https://api.surveymonkey.com/v3/”。ServeyData = {“标题”:“某些标题”}
通过转出节点获取而不是使用axios解决了此问题。我想可能是fetch vs xhr请求。