将变量从Node.js服务器传递到客户端

时间:2012-03-28 20:28:45

标签: node.js

在我的node.js服务器上,我有以下代码:

//Generate a token
var token = capability.generateToken();

//Serve the page
var html = fs.readFileSync('learn.htm').toString();
response.writeHead(200, {"Content-Type": "text/html"});
response.end(html);
}

现在在客户端(在learn.htm中)我想访问令牌变量。我的问题是,如何在响应中将变量传递给客户端?必须有一个简单的方法来做到这一点,但我正在努力绕过它。

3 个答案:

答案 0 :(得分:2)

您应该考虑使用HTML的模板语言。有几个可用,只搜索node.js模板语言或使用npm:

npm search templates

修改:一些受欢迎的广告代码是jadeejshogan.js

答案 1 :(得分:1)

您可以将一些JavaScript发送到设置变量的客户端。或者您可以将其存储在data-属性中,例如body标记(<body data-token="...">)然后通过$('body').data('token')访问它,以防你在客户端有jQuery。

如果您需要表单,您还可以将其存储在隐藏的输入字段中。

答案 2 :(得分:0)

如下所示:

<input type="hidden" value="{{TOKEN}}"> 

在您的HTML中,然后在每次请求时将{{TOKEN}}字符串替换为令牌。

然后使用JS:

var token = $("input#csrf_token").val();

获取客户端脚本中的值。

编辑:我自己没有使用它,但是现在(http://nowjs.com/)是将服务器变量传递给客户端的更通用的方法。可能不是你想传递一个简单的令牌,但它可能是有意义的。