g57*_*792 12 javascript node.js express
我正在使用Node.js,我遇到与客户端通信的问题.
我定义了Express:
var express = require("express");
var app = express();`
Run Code Online (Sandbox Code Playgroud)
当我尝试在请求页面时将参数传递给客户端时,变量不包含任何数据,例如:
app.get("/", function(req, res){
res.render("index", { name: "example" });
});
Run Code Online (Sandbox Code Playgroud)
在索引页面上,当我使用控制台打印变量(name)时,它返回"".
更多信息:http://expressjs.com/api.html#app.render
我错过了什么或做错了什么?
vic*_*ohl 19
name您发送到渲染功能的变量仅在呈现页面时可用,在发送到客户端后,它不可访问.您必须在渲染阶段的视图中使用它.
由于您使用的是把手,您可以像这样在页面中显示它,例如:
<h1>{{ name }}</h1>
Run Code Online (Sandbox Code Playgroud)
如果您想在javascript中使用此数据,请在script标记内使用它:
<script>
var name = "{{ name }}";
console.log(name);
</script>
Run Code Online (Sandbox Code Playgroud)
你基本上是告诉express来渲染你的索引页面并为name变量提供一个值,但这并不一定使name你的客户端javascript中的var可用.您需要编辑索引模板以name在页面中显示变量.语法因您使用的模板引擎(jade,ejs,dustjs)而异.
另一种解决方案是在客户端页面的javascript中使用ajax调用,并res.json在服务器上使用而不是发送数据.然后您可以name在控制台中进行评估.使用jquery的Ex:
index.html的:
$.get( "/getvar", function( data ) {
name = data.name;
});
Run Code Online (Sandbox Code Playgroud)
server.js:
app.get("/getvar", function(req, res){
res.json({ name: "example" });
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45814 次 |
| 最近记录: |