我正在经历一些在Node js中向客户端发送服务器端数据的例子。但后来我尝试了下面的内容,它给了我参考错误。我想知道我在哪里弄错了?谢谢。
server.js -
var express = require('express')
require('highcharts');
var app = express();
app.engine('html', require('ejs').renderFile);
dirname = "C:/Users/user/WebstormProjects/untitled/public";
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});
app.get('/', function (req, res) {
var data = 5;
res.render("data.html",{Data:data});
});
data.html -
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.3.min.js" ></script>
<script src="http://code.highcharts.com/highcharts.js" ></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body>
<div id="container" style="width:100%; height:400px;"></div>
<script type="text/javascript">
var d = JSON.stringify(Data);
console.log(d);
</script>
</body>
</html>
答案 0 :(得分:0)
详细说明@ T.J.Crowder的评论:
<强> 1。您需要了解执行代码的人员以及执行代码的时间:
<强> 2。从中得到了什么?
因为代码是由两个不同的Javascript引擎执行的,甚至可能在两台不同的机器上执行,所以您不能像我们的代码假设那样轻松地将数据从一个传递到另一个。现在基本上有两种选择:
您可以将数据内联到您的server.js服务于客户端的html中。这基本上要求你在发送之前修改html。您可以通过手动将一些数据写入文件来尝试这种方法,以确定它是否有效。然后,您需要弄清楚如何最好地操纵您发送的html,使用模板引擎可能对此有所帮助。
var myData = {key:“value”};
使用Javascript和数据传递的更常见方法是使用AJAX或异步Javascript和XML。在这里,您的客户端将包含向/从服务器发送/请求数据的代码。您可以使用jQuery或basic Javascript。
第3。 AJAX示例代码
server.js
app.get('/', function (req, res) {
res.render('data.html');
});
app.get('/data', function (req, res) {
res.json({ data: 5 });
});
client.js(data.html的脚本标记中的代码,请注意此代码假定在客户端中加载了jQuery.js库)
$.get('/data', function (data) { console.log('got data', data); });