Node.js ejs在呈现模板时抱怨未定义变量

Node.js ejs在呈现模板时抱怨未定义变量,node.js,Node.js,下面显示的代码通过ejs运行下面的模板文件。其目的是进行评估。相反,我收到的投诉是查询没有定义。有人能帮我解释一下为什么会这样吗?谢谢 。。。道格 var http = require('http'); var fs = require("fs"); var ejs = require("ejs"); var server = http.createServer(function (request, response) { var query = require('url').parse(r

下面显示的代码通过ejs运行下面的模板文件。其目的是进行评估。相反,我收到的投诉是查询没有定义。有人能帮我解释一下为什么会这样吗?谢谢

。。。道格

var http = require('http');
var fs = require("fs");
var ejs = require("ejs");
var server = http.createServer(function (request, response) {
  var query = require('url').parse(request.url,true).query;
    response.writeHead(200, {"Content-Type": "text/html"});
    response.end(ejs.render(fs.readFileSync('infile.html','utf8')));
});
server.listen(8000,'208.43.220.79');
console.log("Server running at http://208.43.220.79:8000/");
以下是文件:

!DOCTYPE html>
<html>
 <head><title>Test 2</title></head>
 <body>
  <h2>My <%= query.animal %> has fleas.</h2>
 </body>
</html>

您必须显式地将变量传递给模板:

response.end(ejs.render(fs.readFileSync('infile.html','utf8'), { query: query }));

就这样。谢谢。我正在复习你最有用的答案。我当然想知道你是怎么知道的。我想偶尔也会有一些我想传递的附加变量。虽然我对如何做到这一点肯定有一些想法,但我真的很想阅读相关文档。谁知道我还能学到什么?不管怎样,你有一个URL可以指给我看吗?谢谢