我正在尝试创建一个非常简单的应用程序,通过使用聚合物元素来查找数据库中的值。
我的主要聚合物类看起来像这样:
library index;
import 'package:polymer/polymer.dart';
import 'lookup.dart';
import 'dart:html';
@CustomTag('auth-input')
class AuthInput extends PolymerElement {
@observable String username = '';
@observable String password = '';
AuthInput.created() : super.created();
void login(Event e, var detail, Node target)
{
int code = (e as KeyboardEvent).keyCode;
switch (code) {
case 13:
{
Database.lookUp(username, password);
break;
}
}
}
}
,辅助数据库帮助程序类如下所示:
library database;
import 'package:mongo_dart/mongo_dart.dart';
class Database {
static void lookUp(String username, String password) {
print("Trying to look up username: " + username + " and password: " + password);
DbCollection collection;
Db db = new Db("mongodb://127.0.0.1/main");
db.open();
collection = db.collection("auth_data");
var val = collection.findOne(where.eq("username", username));
print(val);
db.close();
}
}
我一直收到这个错误,我想不出办法:
The requested built-in library is not available on Dartium.'package:mongo_dart/mongo_dart.dart': error: line 6 pos 1: library handler failed
import 'dart:io';
奇怪的是,我不想使用dart:io
。代码可以正常运行数据库进程或运行聚合物进程。我不能让他们一起工作。我不明白为什么这个代码的实现不会运行。
答案 0 :(得分:2)
https://pub.dartlang.org/packages/mongo_dart的第一行说
在纯Dart中实现MongoDb的服务器端驱动程序库。
这意味着您无法在浏览器中使用它。您的错误消息表明相同。包中的代码使用dart:io
,因此无法在浏览器中使用。
此外,mongodb://127.0.0.1/main
不是可在浏览器中使用的网址。
您需要一个执行数据库访问的服务器应用程序,并为您的浏览器客户端提供HTTP / WebSocket API。