用json发送html文件并让浏览器重新加载该json而不用重新加载页面

我正在尝试编写一个浏览器服务器程序,浏览器发送一个http get到' http:// localhpost:3000 / param = something '。 服务器应该返回一个html页面和一个json。 我尝试使用res.render(),我将json作为parameter passing(它是一个数组),但渲染将无法正常工作。 这是我的代码在app.js中:

app.use(express.static(path.join(__dirname, 'public'))); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'html'); 

这里是回答http请求的index.js:

 router.get('/:screen', function(req, res, next) { var arr = Array(); res.render('main.html', { playlist : arr }); }); 

我得到的错误是: 错误:无法find模块“HTML”

现在,即使这样做,我仍然不得不每分钟从服务器获取一个更新的json(数组), 而无需重新加载页面 。 我成功地做到了这一点,我访问存储在共享库中的主json(数组),并使用ajax加载它。 这是有效的,但程序需要得到一个与原始http get中发送的“screen”参数相关的子json。 为了做到这一点,我需要一种方法,使服务器从原来的重新计算子JSON并重新发送给我,而无需重新加载页面。

至于研究和我试过的东西: 问题1 :我通过这个网站search了很多,发现了一些解决scheme,没有为我工作。 这可能是一个版本问题或其他任何我没有注意到,但我已经做了所有的变化,我应该为了使'render()'工作在HTML。 我只是不断收到这个错误。 问题2 :正如我已经解释过的,我find了一种获取原始json的方法,但是无法弄清楚如何得到子json。 这里是main.html中的代码(无论参数的“屏幕”作为原始获取请求的一部分发回):

 $.get("http://localhost:3000/ads.js", function(data, status){ playlist = JSON.parse(data); }); 

我非常感谢任何有关这些问题的帮助。

注:我在同一个问题中包含了这两个问题,因为它们是相互连接的。 这两个请求都应该使服务器计算一个子JSON并发送它。 一个请求会将其作为html文件的一部分发回,另一个请求将被加载到该页面中,而不会重新加载整个页面。 解决这些问题中的一个直接影响另一个,所以我select在这里包括他们。

好吧,下面是我解决所有这些问题的方法:

  • 至于render()函数,我知道你需要改变你的视图引擎,所以我没有使用它。
  • 相反,我使用'sendFile()'将主html文件发送到所有工作站。 在那个html文件里面,我包含了ajax请求(这使得网站不能重新加载)。 我将'url'设置为'window.location.href',其中包含所需的参数。
  • 在服务器端,我使用单独的函数来处理请求。 一个发回主html文件,另一个使用url中的参数计算子json并将其发回给用户。