这是firebase中的函数:
exports.getProducts = functions.https.onRequest((request, response) => {
const url = `https://www.xxxxxxxxxxxxx`;
const options = {
uri: url,
headers: { 'User-Agent': 'test' },
transform: (body) => cheerio.load(body)
}
rp(options)
.then(($) => {
const listings = $('.cards').first().find(".link");
var message = [];
for (var k=0;k<listings.length;k++)
message.push({"title":$(listings[k]).attr('title'),"url":$(listings[k]).attr('href')});
console.log(message)// ******** prints the right result
return message; //*** how to return it ? and where ?
})
.catch((err) => response.status(400).send(err))
});
当我使用shell
时,它会打印需要打印的内容。
当我访问函数URL
时,什么都没有发生。
- 我想我没有返回数据-我将如何返回此消息
- 我将如何向它发送
string
参数,并在此函数中访问
您的代码需要显式地向客户端发送响应。仅仅从回调中返回是不够的。你需要这样的东西:
response.json(message);
我建议阅读HTTP触发器的文档,看看它们应该如何工作的一些示例。