javascript – HTML客户端和Node.js服务器之间的变量

我只是想将变量从 HTML页面传递到节点js并对数据执行一些计算并使用ejs将其恢复为HTML

安装ejs后:

npm install ejs

我试图通过值50“HTML页面”传递此变量temp:

<html>
   <head>
   </head>
<body>
My temperature: <%= temp=50 %>
Temp + 10 : <%= total %>
</body>
</html>

和我的nodejs server.js:

var http = require('http');
var ejs = require('ejs');
var fs = require('fs');

http.createServer(function(req,res) {
  res.writeHead(200, {'Content-Type': 'text/html'});

  //since we are in a request handler function
  //we're using readFile instead of readFileSync
  fs.readFile('index.html', 'utf-8', function(err, content) {
    if (err) {
      res.end('error occurred');
      return;
    }
    var temp;  //here you assign temp variable with needed value
    var total = temp+10;
    var renderedHtml = ejs.render(content, {temp: temp, total:total});  //get redered HTML code
    res.end(renderedHtml);
  });
}).listen(8080);

任何帮助,将不胜感激
提前致谢.

最佳答案 在您的服务器文件中,temp的值未定义.所以total = undefined 10 = undefined.因此,您的变量在服务器文件中未定义.

尝试这样做(在服务器文件中):

var temp = 0

var total = 0

在html文件中我的温度:<%= temp = 50%>
温度10:<%=总=温度10%>
现在它应该显示正确的值,即50和60.希望这有帮助

点赞