5
在客户端JavaScript中访问Express.js局部变量
我想知道我是否做对了,如果不正确,你们会怎么做。 我有一个Jade模板,该模板需要呈现从MongoDB数据库检索到的一些数据,并且还需要访问客户端JavaScript文件中的该数据。 我正在使用Express.js并将数据发送到Jade模板,如下所示: var myMongoDbObject = {name : 'stephen'}; res.render('home', { locals: { data : myMongoDbObject } }); 然后在home.jade内部,我可以做类似的事情: p Hello #{data.name}! 写出来: Hello stephen! 现在,我想要的是也可以访问客户端JS文件中的此数据对象,以便在将其回发到服务器以更新数据库之前,只需单击一下按钮即可操作该对象。 通过将“数据”对象保存在Jade模板的隐藏输入字段中,然后在客户端JS文件中获取该字段的值,我已经能够实现这一点。 内部home.jade - local_data = JSON.stringify(data) // data coming in from Express.js input(type='hidden', value=local_data)#myLocalDataObj 然后在我的客户端JS文件中,我可以像这样访问local_data: 在myLocalFile.js内部 var localObj = JSON.parse($("#myLocalDataObj").val()); console.log(localObj.name); 但是,这种分类/解析业务令人感到混乱。我知道我可以将数据对象的值绑定到Jade模板中的DOM对象,然后使用jQuery提取这些值,但是我想访问客户端JS中从Express返回的实际对象。 我的解决方案是否最优,你们将如何实现?