mysql - 由于 Angular Universal 中的 Zone.js 服务器渲染停止工作。怎么修?

标签 mysql angular-universal zone.js

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

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

最佳答案

我已经找到解决办法了。就我而言,该问题是通过以下命令解决的:

npm install zone.js@latest

现在我可以向 MySQL 发出请求,而且我还可以进行服务器渲染,并且可以查看 HTML 模板中的所有数据。

关于mysql - 由于 Angular Universal 中的 Zone.js 服务器渲染停止工作。怎么修?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659236/

相关文章:

mysql - 在另一个表中按行排序以填充 "What' s Hot"list

php - 使用 PHP7 的 mariaDB 中的 MySQLi 和 PDO

Angular 通用启动器 : Wha't the purpose of the service TransferState?

angular - 将 Angular Universal 部署到 Azure 或 Netify(dist 和 dist-server 文件夹)

angular - zone.js 无法解析

mysql - SQL INSERT 从 where 子句到另一个 where 子句

mysql - 使用 like 通过查询实现数据库搜索

node.js - TransferHttpCacheModule 不会阻止 Angular 8 中的重复 HTTP 调用

node.js - 由于 zone.js,Angular7 在 Google Page Speed 上的性能降低

angularjs - 为什么 Zone.js 会改变 AngularJS 评估属性的方式?