服务器端:
app.get('/auth', function(req, res) {
res.render('auth.jade', {
variable: true
});
});
如何从服务器端获取客户端的变量“variable”?
我尝试过以下方法:
alert(variable);
服务器端:
app.get('/auth', function(req, res) {
res.render('auth.jade', {
variable: true
});
});
alert(variable);
在浏览器窗口中的客户端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); });
app.get('/auth', function(req, res) {
res.send({
variable: true
});
});
只有在 Jade 编译后,对象 {variable:true}
才能在 auth.jade 中使用。你可以将它添加到隐藏元素中,并使用客户端 JavaScript 读取它,或者更好地从 ajax 调用中获取它的 JSON。