我正在尝试编写一个浏览器服务器程序,浏览器会将http发送到' http://localhpost:3000/param=something'。服务器应该返回一个html页面和一个json。我尝试使用res.render(),其中我传递json作为参数(它是一个数组),但渲染不起作用。这是我在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 });
});
我得到的错误是: 错误:无法找到模块' html'
现在,即使可行,我仍然必须以某种方式从服务器每分钟获取更新的json(数组),而不重新加载页面。我成功地在那里访问存储在共享库中的主json(数组)并使用ajax加载它。这是有效的,但该程序需要得到一个与该屏幕相关的子json'在原始http get中发送的参数。 为了做到这一点,我需要一种方法让服务器重新计算原始的子json并重新发送给我,而无需重新加载页面。
关于研究和我尝试过的事情: 问题1 :我通过这个网站搜索了很多,发现了一些对我没用的解决方案。这可能是一个版本问题或其他任何我不注意的事情,但我做了所有我应该做的改变,以便做出渲染()&#39 ;在HTML上工作。我只是不断收到这个错误。 问题2 :正如我已经解释的那样,我找到了获得原始json的方法,但无法弄清楚如何获得sub-json。这是main.html中的代码(无论参数'屏幕'作为原始获取请求的一部分,都会被发回):
$.get("http://localhost:3000/ads.js", function(data, status){
playlist = JSON.parse(data);
});
我非常感谢任何有关这些问题的帮助。
注意:我在同一个问题中包含了这两个问题,因为它们相互连接。这两个请求都应该使服务器计算一个子json并发送它。一个请求将作为html文件的一部分发回,另一个请求将加载到该页面而不重新加载整个页面。解决其中一个问题直接影响到另一个,所以我选择将它们包括在这里。
答案 0 :(得分:1)
好的,所以我在这里解决了所有这些问题: