如何将传递给 nodejs 的查询字符串转发到通过 res.render 提供的页面?

How can I forward a querystring passed to nodejs to a page served via res.render?

在我的 nodejs 文件中,我正在呈现一个名为 foo.html 的页面。在 foo.html 内部,我使用 ajax 从查询字符串中提取变量并相应地加载适当的 xml 文档。 问题是,如果我运行我的 nodejs 服务器,我们将其称为本地主机,并将查询字符串附加到它,然后服务器将使用查询字符串而不是 foo.html 内的 ajax 调用。

有没有办法将查询字符串直接转发到 foo.html?

从 nodejs 文件内部,server.js:

app.get('/', function (req, res) {
    var query = req.query;
    if (query) {
        if (query.screen == "page1") {
            res.render('foo.html');
        }
    }
});

我可以想到两种方法

1st way -) you can change your rendering engine and pass the query string variables as local variables to the template and store those values as variables inside a <script></script> tag

2nd way -) keep the html but don't render the file  load it and modify it to contain the same script tag with the variables, 

在这两种情况下,一旦您的页面加载完毕,您的 JS 将能够访问变量

------------HTML 文件----------------

<script>
   var a=/*text-to-replace-for-A*/;
   var b=/*text-to-replace-for-B*/;
</script>

----------------请求处理程序------------

 var fs=require('fs'); //this goes in the require section

 //this goes inside your function
 fs.readFile('/etc/passwd', function (err, data) {
   if (err) throw err;
   var finalHTML=data.replace(/\/\*text-to-replace-for-A\*\//g,variableA).replace(/\/\*text-to-replace-for-B\*\//g,variableB);
   res.send(finalHTML)
 });

类似的事情应该注意到我正在使用一个简单的读取文件并发送,这不是最快的解决方案,而是使用 html 修改的最简单的解决方案。您还可以使用流动态修改内存中的文件。您可以在以下位置找到 readfile 函数参考:http://nodejs.org/api/fs.html#fs_fs_readfile_filename_options_callback