Javascript 如何在变量中存储firebase snap.val(),以便在其他地方使用?

Javascript 如何在变量中存储firebase snap.val(),以便在其他地方使用?,javascript,node.js,express,firebase,Javascript,Node.js,Express,Firebase,如何使用javascript存储firebase数据库中的数据。我想使用once方法,这样它就不会经常查找任何更改。 例如: database.child('readOnly/something').once('value').then((snap) => { const groupObj = [ snap.val() ] }); app.get('/something',(req,res)=>{

如何使用javascript存储firebase数据库中的数据。我想使用once方法,这样它就不会经常查找任何更改。 例如:

database.child('readOnly/something').once('value').then((snap) => {
        const groupObj = [
            snap.val()
        ]
    });
    app.get('/something',(req,res)=>{
            res.render('something',{
                "groupList": groupObj
            });
        });
            // Individual Life Groups
            app.get('/something/:name',(req,res)=>{
                const group = req.path.split("/").pop();
                console.log(groupObj.length)
                for (i = 0; i < groupObj.length; i+=1) { 
                    if(groupObj[i].url   == group){
                        var desiredGroup = groupObj[i];
                        console.log(desiredGroup);
                        break;
                    }
                }
                res.render('group', desiredGroup);
                // To-Do: Add Data and Bindings
            });
database.child('readOnly/something')。一次('value')。然后((snap)=>{
常量groupObj=[
snap.val()
]
});
app.get('/something',(req,res)=>{
res.render('某物'{
“组列表”:groupObj
});
});
//个体生命群
app.get('/something/:name',(req,res)=>{
const group=req.path.split(“/”.pop();
console.log(groupObj.length)
对于(i=0;i

我正在使用最新版本的expressjs、firebase、nodejs和npm。

您可以将
groupObj
变量放在“全局”区域中,以便所有回调都可以使用它

const groupObj = [];

database.child('readOnly/something').once('value').then((snap) => {
  groupObj.push(snap.val());
});

app.get('/something',(req,res)=>{
    res.render('something',{
        "groupList": groupObj
    });
});

// Individual Life Groups
app.get('/something/:name',(req,res)=>{
    const group = req.path.split("/").pop();
    console.log(groupObj.length)
    for (i = 0; i < groupObj.length; i+=1) { 
        if(groupObj[i].url   == group){
            var desiredGroup = groupObj[i];
            console.log(desiredGroup);
            break;
        }
    }
    res.render('group', desiredGroup);
    // To-Do: Add Data and Bindings
});
constgroupobj=[];
database.child('readOnly/something')。一次('value')。然后((snap)=>{
groupObj.push(snap.val());
});
app.get('/something',(req,res)=>{
res.render('某物'{
“组列表”:groupObj
});
});
//个体生命群
app.get('/something/:name',(req,res)=>{
const group=req.path.split(“/”.pop();
console.log(groupObj.length)
对于(i=0;i
在应用程序的生命周期内是否有相同的值?或者你希望它改变吗。在所有请求/用户之间共享?在再次调用“/something”之前,该值是相同的。是的,您可以将该值存储在一个位置,该位置可供需要该值的路由的所有调用使用,然后重新使用。谢谢您,当我这样做时,我得到的只是一个空数组