全局变量不改变功能值

时间:2019-10-19 17:25:20

标签: javascript node.js

我有一个nodejs应用程序,并且我试图将一个称为Membership的值传递给页面。我对其进行了初始化,并尝试在函数中更新其值,但输出未更改。它仍然输出0。请我帮忙

app.get("/",(req,res)=>{
    var membershipStrength = 0;
    memberData.findAll()
        .then(members =>{
            // console.log(members.length);
            membershipStrength = members.length;
            console.log(membershipStrength);
        })
        .catch(err => {
            console.log("Error fetching members data: ", err);
        });
    console.log(membershipStrength);
    return res.render("index",
        {
        page: "Admin",
        membershipStrength: membershipStrength,
        // tableData : global.dataOut
        }
    );
});

1 个答案:

答案 0 :(得分:0)

您正在调用render函数,然后再完成对findAll的调用。因此,当您的服务器响应HTTP请求时,它仍然具有membershipStrength的原始值。

您需要在render处理程序中将对then的调用:

app.get("/",(req,res)=>{
    var membershipStrength = 0;
    return memberData.findAll()
        .then(members =>{
            // console.log(members.length);
            membershipStrength = members.length;
            console.log(membershipStrength);
            return res.render("index",
            {
              page: "Admin",
              membershipStrength: membershipStrength,
              // tableData : global.dataOut
            }
            );
        })
        .catch(err => {
            console.log("Error fetching members data: ", err);
        });

});