SQLJocky Dartium上没有内置库'dart:io'

时间:2014-01-15 13:44:57

标签: dart dart-html

所以我有点想使用Dart与我的MySQL服务器进行交互。我抬头看看人们是如何做到的,我得到了sqljocky。现在我在我的主文件中导入sqljocky,我收到错误:内置库'dart:io'在Dartium上不可用。 现在这里出了什么问题,谷歌为什么要做dart:io什么时候Dartium不可用?

提前致谢!

1 个答案:

答案 0 :(得分:5)

dart:io库可用于类似于Node.js的服务器端进程。它允许开发人员在客户端和服务器上都使用一种语言。它提供了诸如创建本机套接字,本机文件i / o等功能,这些功能由于沙盒限制而无法在客户端(使用任何语言)完成。

SQLJockey使用创建本机套接字连接MySQL服务器的能力。它不是可以在客户端完成的东西(或者至少不容易),即使它可以,也不应该这样做,因为一旦代码是客户端它总是容易被最终用户修改(我可以修改javascript在我的浏览器上我点击的任何页面表现不同)。在服务器端,您可以清理发送到数据库的命令,而不必担心其他人可以更改您的清理规则。当然,更不用说在您的客户端代码中为您的MySQL提供用户名和密码供任何人访问,以及您的MySQL连接需要接受任何地方的登录,而不仅仅是'localhost'或特定的服务器/域会让你太容易受到影响。

因此dart:io库将像Ruby(在Rails或Sinatra等上)脚本一样在服务器端运行,或者像PHP或类似Node.js一样运行。它不是为运行客户端而设计的,因为它提供了出于安全原因无法在浏览器中实现的功能(此安全性内置于浏览器中而不仅仅是语言中)。