服务器端:
app.get('/auth', function(req, res) {
res.render('auth.jade', {
variable: true
});
});
如何从服务器端在客户端获取变量'variable'?
我试过了:
alert(variable);
答案 0 :(得分:4)
您无法直接在浏览器窗口中的客户端javascript中的节点应用程序中获取服务器端变量。虽然它们支持相同的编程语言,但它们只是两个不同的运行时。
您的问题是客户端javascript如何与/auth
等服务器端资源进行通信。选项是:
在由jade模板呈现的网页上的脚本标记中提供您的数据。例如:
html(lang="en")
head
title= pageTitle
script(type='text/javascript').
var generatedData = {variable:true}
body
然后您可以使用alert(generatedData)
来获取它。请注意,数据必须是可序列化的数据,没有任何功能或参考。
通常人们使用JSON,这意味着您需要编写一些客户端代码来与服务器端资源进行通信。比如在客户端使用jQuery:
$.get('/auth').done(function(data){ alert(data); });
使用服务器端代码,它通过快速响应对象自动发送JSON数据:
app.get('/auth', function(req, res) {
res.send({
variable: true
});
});
答案 1 :(得分:-1)
当jade编译时,对象{variable:true}
只能在auth.jade中使用。您可以将它添加到隐藏元素并使用客户端javascript读取它,或者更好,从ajax调用中将其作为json。