从视图Node.js上的axios访问数据



我正试图将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});
});

最新更新