我目前正在开发一个小型帐户系统,我想在概览网络面板中显示用户数据。在auth之后,用户对象与ejs文件一起直接传递到客户端。
当通过ejs语句直接访问用户对象时,一切都很正常。它也可以在以下行之后用Javascript打印:
<script>
const user = JSON.stringify(<%- JSON.stringify(user) %>);
console.log(user);
</script>
我现在也可以在我的js文件中打印这个对象。但是,我无法访问对象的某些变量。
我有这个功能可以在面板上显示某些信息:
function displayUserInfo() {
console.log("User:" + user);
console.log("Username:" + user.username);
document.getElementById('profilePic').src = user.image;
document.getElementById('usernameInput').value = user.username;
document.getElementById('emailInput').value = user.email;
document.getElementById('displaynameInput').value = user.displayname;
}
此代码在控制台中的输出如下:
User:{"id":3,"username":"test@test","email":"test@test","image":null,"created_at":"1718643827967.0","salt":undefined,"password":undefined}
Username: undefined
此外,我试图用这个函数修改的所有值都设置为未定义。
我试着等待网站完成加载,然后调用函数,但无济于事。我不明白为什么会发生这种情况,因为我可以在一行上访问同一个对象,一行之后它似乎消失了。