我只是想将变量从 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.希望这有帮助