【发布时间】:2020-12-21 13:43:55
【问题描述】:
我是 express js 的初学者,我从 express 和 firebase 为我的音乐应用程序制作了 api,它从 firebase 获取数据并接受请求并发送数据作为响应。但是有一个问题正在搞乱程序。每次firebase的值(音乐的Views)发生变化时,它都会重新发送相同的响应。
这是我的代码
app.use(cors())
let trendingTracks = []
let data;
function Trending(data){
if (data){
Object.values(data).forEach((value)=>{
if(value.views < 10){
trendingTracks.push(value)
}
})
}
}
function SortPopular(a){
for(let i = 0; i<=a.length; i++){
for (let j = i+1; j<a.length; j++){
if(a[i].views>a[j].views){
const temp = a[i]
a[i]=a[j]
a[j]=temp
}
}
}
return a
}
firebase.database().ref("public/songs").on("value", snapshot =>{
data = snapshot.val();
Trending(data)
})
app.get("/api/home/trending", (req, res)=>{
res.send(SortPopular(trendingTracks))
})
app.listen(4000, ()=>console.log("listening at port 4000..."))
每次views 的值发生变化时,它都会响应相同的数据。
数据库值不变时:
当数据库的值改变时:
你可以看到同样的东西重新发送。
【问题讨论】:
-
在 Stack Overflow 上,请不要显示文字和代码的图片。将文本复制到问题本身并设置格式,以便于阅读、复制和搜索。您可以使用底部的编辑链接编辑问题以更正此问题。
标签: javascript node.js firebase express firebase-realtime-database