Node.js 如何使我的API函数返回“;“字符串”;到Redis SETEX值
我正在使用Node.js和express.js构建一个网站,并在后端调用API 但是我有点困惑如何让我的https请求同时返回字符串 因为我还需要它将stringfy JSON数据返回到Redis SETEX函数 下面是我的代码 //我相信这很好用Node.js 如何使我的API函数返回“;“字符串”;到Redis SETEX值,node.js,express,redis,httprequest,Node.js,Express,Redis,Httprequest,我正在使用Node.js和express.js构建一个网站,并在后端调用API 但是我有点困惑如何让我的https请求同时返回字符串 因为我还需要它将stringfy JSON数据返回到Redis SETEX函数 下面是我的代码 //我相信这很好用 function myweb(para1, para2, para3, res) { https.get({ hostname: 'api.com', path: '/search?q=' + para1 +
function myweb(para1, para2, para3, res) {
https.get({
hostname: 'api.com',
path: '/search?q=' + para1 + '&offset=' + para2 + '&filter=' + para3,
headers: { 'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY },
}, response => {
body = '';
response.on('data', part => {
body += part;
})
response.on('end', () => {
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(JSON.parse(body)));
})
})
}
//我在尝试建立服务器缓存时感到困惑
const redisPort = 6379;
const client = redis.createClient(redisPort);
app.get("/job", (req, res) => {
const aaa = `${req.query.q}`;
const bbb = `${req.query.offset}`;
const ccc = `${req.query.filter}`;
try {
client.get(aaa, async (err, jobs) => {
if (err) throw err;
if (jobs) {
return jobs;
} else {
const jobs = myweb(aaa, bbb, ccc, res);
client.setex(aaa, 600, JSON.stringify(jobs));
}
});
} catch(err) {
res.status(500).send({message: err.message});
}
});
我的日志告诉我,我试图在client.setex
的第三个参数中给出一个未定义的参数(即JSON.stringify(jobs)
)
但是不管我怎么做,我都不能让我的函数myweb
返回一个合适的值给SETEX
我想我可能对https请求有一些误解,但我不确定
请帮忙。。。谢谢大家!