在我的数据请求中,我返回简单的 JSON 而不连接到数据库,Angular Universal 中的服务器渲染工作正常。
但是,我发现如果我没有正确版本的 Zone.js,对 MySQL 数据库的请求就不会进行。我有以下错误:
TypeError: Cannot read property 'on' of undefined
at Protocol._enqueue (/Applications/MAMP/htdocs/Angular2/myproject/node_modules/mysql/lib/protocol/Protocol.js:152:5)
...
我还注意到我有一个警告:
angular2-universal@2.1.0-rc.1 requires a peer of zone.js@~0.6.21 but none was installed.
所以我安装了正确的 Zone.js:
npm install zone.js@0.6.21
我开始从 MySQL 接收数据。
但!此时服务器渲染停止工作!我只看到:
<!--template bindings={}-->
在 HTML 模板中。
我搬回去返回一个没有连接到 MySQL 的 JSON,并发现即使在这种情况下,服务器渲染也无法正常工作。
所以我玩了一点,发现如果我使用命令:
npm install zone.js
然后当我返回 JSON 而不连接到数据库时,服务器渲染可以正常工作,但是如果我尝试连接到 MySQL,则会发生原始错误。
所以现在我要么有工作服务器渲染,要么连接到没有服务器渲染的 MySQL。不是服务器渲染和与数据库的工作连接。
如果有人知道应该做什么,我将不胜感激。谢谢你。