我正试图将axios请求中的数据打印到pug模板中。我在访问数据时遇到问题。我是新手,我认为这与我的数据对象被传递到路由有关。
后端
axios.get("https://www.worldometers.info/coronavirus/")
.then(res => {
const data = [];
const $ = cheerio.load(res.data);
$('.maincounter-number').each((index, element) => {
const numberData = $(element).text();
data[0] = {numberData: numberData};
//console.log(data);
});
}).catch(err => {
console.log("Error fetching and parsing data: ", err);
});
app.get("/", (req, res) => {
res.render('index', {title: 'Home', data: data});
});
前端
p #{data.numberData}
作用域存在问题。数据变量绑定到本地作用域。
async function scrapeWorldOMeter(){
try{
const worldOMeterResponse = await axios.get("https://www.worldometers.info/coronavirus/");
const data = [];
const $ = cheerio.load(worldOMeterResponse.data);
$('.maincounter-number').each((index, element) => {
const numberData = $(element).text();
data[0] = {numberData: numberData};
return data[0];
});
}
catch(err){
throw new Error(`Can't scrape WorldOMeter ${err}`)
}
}
app.get("/", async(req, res) => {
const data = await scrapeWorldOMeter()
res.render('index', {title: 'Home', data});
});