我正在尝试设置一个返回 xml 的云函数。我能够创建并记录 xml,但当我尝试返回它时,它崩溃并出现以下错误。
TypeError: Converting circular structure to JSON at Object.stringify (native) at stringify (/var/tmp/worker/node_modules/express/lib/response.js:1119:12) at ServerResponse.json (/var/tmp/worker/node_modules/express/lib/response.js:260:14) at ServerResponse.send (/var/tmp/worker/node_modules/express/lib/response.js:158:21) at cors (/user_code/index.js:663:21) at cors (/user_code/node_modules/cors/lib/index.js:188:7) at /user_code/node_modules/cors/lib/index.js:224:17 at originCallback (/user_code/node_modules/cors/lib/index.js:214:15) at /user_code/node_modules/cors/lib/index.js:219:13 at optionsCallback (/user_code/node_modules/cors/lib/index.js:199:9)
我的功能
exports.sendXMLResponeSample = functions.https.onRequest((request, response) => {
cors(request, response, () => {
// import xmlbuilder
const builder = require('xmlbuilder');
// create my object to convert to xml
var myFeedObject = {
"somekey": "some value",
"age": 59,
"eye color": "brown"
}
// convert myFeedObject to xml
const feed = builder.create(myFeedObject, { encoding: 'utf-8' })
console.log("feed.end({ pretty: true }) = (below)");
console.log(feed.end({ pretty: true }));
// return xml
return response.send(200, feed) // <<< error occurs here
})
})
我相信该错误表明 firebase 云函数期望我在响应中返回 JSON 对象而不是 xml 对象,但我不确定如何告诉它在响应中期望 xml 对象。
有人了解如何在 Firebase 云函数中返回 xml 对象吗?
编辑: 该对象已转换为 xml 对象,没有任何问题。尝试返回 xml 对象时会发生错误。
最佳答案
您可以在云函数返回给调用者的响应对象上使用.contentType(type: string)
。
像这样:
res.status(200)
.contentType('text/xml; charset=utf8')
.send(xmlString);
关于javascript - 在 Firebase Cloud 函数中返回 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51846874/