0

在我的数据请求中,我返回简单的 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。不是服务器渲染和与数据库的工作连接。

如果有人知道应该做什么,我将不胜感激。谢谢你。

4

1 回答 1

0

我找到了解决方案。就我而言,问题已通过以下命令解决:

npm install zone.js@latest

现在我可以向 MySQL 发出请求,并且我有一个服务器渲染,可以看到我的 HTML 模板中的所有数据。

于 2017-03-11T22:00:22.383 回答