我如何通过车把参数传递给js?

问题描述 投票:0回答:1

晚/晚,

我正在制作商店页面。我需要在fetch调用中发送两件事,即项目列表和用户ID。从我的nodejs代码中,我像这样传递我的用户名:

router.get('/testing', async (req, res) => {
    if (req.user) {
        let query = await User.findOne({ userid: req.user.steamid })
        res.render('testing', {
            user: req.user,
            balance: (query.balance/100),
            steamid: req.user.steamid
        })
    } else {
        res.redirect('/')
    }
});

我的HTML文件和JS代码分开。在我的HTML中,我通常使用车把调用变量。例如:

<a class="nav-link" >Balance: ${{balance}}</a>

但是我不明白的是,如何在我的JS代码中使用这些参数?在外部文件中。我要先在HTML中设置变量吗?如果是这样,这是否意味着有人可以更改它以说出我的身份证,然后我会失去余额?我需要使用bcrypt来哈希用户ID吗?真的很感谢一些建议! :)

javascript html node.js handlebars.js
1个回答
0
投票

您可以在加载外部脚本之前简单地在模板中将其设置为JavaScript变量,它们将作为全局变量使用:

const userid = {{user.id}};
const balance = {{balance}};
const steamid = '{{steamid}}';

<script src="/js/site.js" type="text/javascript"></script>
<script type="text/javascript">
  someFunctionFromSiteJsFile(userid, balance, steamid);

   // test displaying userid
   console.log('user id', userid);
</script>

关于需要安全性的其他问题,这取决于许多不同的因素,并且没有更多的细节,很难回答您应该对这些变量进行什么操作,或者根本不应该使用此技术。] >

© www.soinside.com 2019 - 2024. All rights reserved.