从服务器端获取客户端的variables(express.js,node.js)

服务器端:

app.get('/auth', function(req, res) { res.render('auth.jade', { variable: true }); }); 

如何从服务器端获取客户端的variables“variables”?

我试过了:

 alert(variable); 

       

网上收集的解决方案 "从服务器端获取客户端的variables(express.js,node.js)"

你不能直接在浏览器窗口中的客户端javascript的节点应用程序中获得服务器端variables。 尽pipe他们支持相同的编程语言,但它们只是两种不同的运行时间。

你的问题是关于如何客户端JavaScript可以沟通像/auth服务器端资源。 选项是:

在你的网页上用jade模板提供脚本标记中的数据。 例如:

 html(lang="en") head title= pageTitle script(type='text/javascript'). var generatedData = {variable:true} body 

然后你可以使用alert(generatedData)来获取它。 请注意,数据必须是可序列化的数据,而不具有任何function或参考。

通常人们使用JSON,这意味着您需要编写一些客户端代码来与服务器端资源进行通信。 就像在客户端使用jQuery一样:

 $.get('/auth').done(function(data){ alert(data); }); 

使用服务器端代码,通过快速响应对象自动发送JSON数据:

 app.get('/auth', function(req, res) { res.send({ variable: true }); }); 

对象{variable:true}只能在jade编译时在auth.jade中使用。 你可以将它添加到一个隐藏的元素,并阅读它使用客户端的JavaScript,或者更好的,从ajax调用得到它作为JSON。