dart - SQLJocky 内置库 'dart:io' 在 Dartium 上不可用

标签 dart dart-html

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

提前致谢!

最佳答案

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

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

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

关于dart - SQLJocky 内置库 'dart:io' 在 Dartium 上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139087/

相关文章:

firebase - Flutter - 如何检查是否完美上传/删除到firebase数据库的数据?

jquery-animate - 如何在 Dart 中设置滚动动画?

flutter - 去除底部导航栏 flutter 中的底部阴影效果

flutter - 如何使用 `form.validate()` 调用特定验证器而不是同时调用所有验证器?

dart - DART 语言通知 - html/浏览器/webkit/桌面

dart - 如何在类中使用querySelector?

authentication - Dart 登录/注销示例

dart - 如何在 Dart 中使用 animationFrame?

list - 如何将多个列表合并为一个列表? Dart

dart - 如何将函数作为可选参数传递给 dart 函数中的默认值?