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

Tim*_*oot 1 dart dart-html

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

提前致谢!

Mat*_*t B 5

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

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

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