Dartium上没有请求的内置库

时间:2014-10-10 04:46:34

标签: mongodb dart dart-polymer

我正在尝试创建一个非常简单的应用程序,通过使用聚合物元素来查找数据库中的值。

我的主要聚合物类看起来像这样:

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。代码可以正常运行数据库进程或运行聚合物进程。我不能让他们一起工作。我不明白为什么这个代码的实现不会运行。

1 个答案:

答案 0 :(得分:2)

https://pub.dartlang.org/packages/mongo_dart的第一行说

  

在纯Dart中实现MongoDb的服务器端驱动程序库。

这意味着您无法在浏览器中使用它。您的错误消息表明相同。包中的代码使用dart:io,因此无法在浏览器中使用。

此外,mongodb://127.0.0.1/main不是可在浏览器中使用的网址。

您需要一个执行数据库访问的服务器应用程序,并为您的浏览器客户端提供HTTP / WebSocket API。