NodeJs在服务器端渲染HTML模板+逻辑

时间:2016-12-07 20:34:07

标签: javascript angularjs node.js express serverside-rendering

您好我正在我现有的基于Angular 1的UI项目中开发一个小部件模块。该小部件应该包含实时信息。

根据我的设计,我想在第一个请求发出时从节点服务器(可能使用express js)向客户端发送html视图。但由于数据需要是实时的,我不能每分钟发送完整的html(每次都会重复模板传输)。

所以我可以将一个模板发送到客户端以及一组java脚本函数,这样当客户端希望刷新数据时,他只会调用发送的javascript函数,并在内部我的javascript函数将使休息调用,从服务器获取json响应并再次重新填充最初发送的html。

这样我计划在服务器端进行初始渲染,然后使用服务器提供的逻辑在客户端进行后续渲染。在这里,客户端将不知道它正在呈现哪个小部件以及它具有哪些功能。所有这些都将由服务器发送的js控制。

请告诉我如何实现这一目标,因为我发现ejs没有达到这个目的。使用ejs,我需要将所有逻辑仅限于服务器端。而我计划在运行时将逻辑从服务器传输到客户端。

此外,如果我的设计存在一些严重问题,请建议其他一些替代方案。感谢

1 个答案:

答案 0 :(得分:0)

Angular1不是server side rendering友好的,因为它需要浏览器DOM。使用任何模板引擎都不会有任何帮助,因为它们生成的html不会被角度应用程序选中。

使用phantomjs无头浏览器实例通过运行ur angular1应用程序代码生成html,然后当脚本加载时,angular将在客户端运行。

我建议切换为Angular2React,因为他们server side rendering友好