我正在尝试构建一个小型应用程序,用于学习,使用Dart、MongoDB和Objectory。为此,我创建了一个基本模型:
part of myapp;
class Member extends PersistentObject {
String get username => getProperty('username');
set username(String value) => setProperty('username',value);
String get password => getProperty('password');
set password(String value) => setProperty('password',value);
// more fields here
}
void registerClasses() {
objectory.registerClass(Member, () => new Member());
}在我的主应用程序文件中,我有:
library myapp;
import "package:redstone/server.dart" as app;
import "package:objectory/objectory.dart";
import "dart:core";
part "lib/member.dart";
Objectory objectory;
void main() {
objectory = new Objectory("mongodb://localhost/myapp", registerClasses, false);
objectory.initDomainModel().then((_) {
app.setupConsoleLog();
app.start(address: "127.0.0.1", port: 8080);
});
}当我运行它时,我会得到以下错误:
Breaking on exception: object of type NoSuchMethodError
Unhandled exception:
The null object does not have a method 'dataMapDecorator'.
NoSuchMethodError: method not found: 'dataMapDecorator'
Receiver: null
Arguments: [Instance of '_LinkedHashMap']
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#1 BasePersistentObject.BasePersistentObject (package:objectory/src/persistent_object.dart:10:46)
#2 PersistentObject.PersistentObject (package:objectory/src/persistent_object.dart:1:1)
#3 Member.Member (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:1:1)
#4 registerClasses.<anonymous closure> (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:74:45)
#5 Objectory.registerClass (package:objectory/src/objectory_base.dart:118:39)
#6 registerClasses (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:74:26)
#7 Objectory.initDomainModel (package:objectory/src/objectory_base.dart:141:28)
#8 main (file:///Users/lucian/Projects/dart/eviq/bin/eviq.dart:13:28)
#9 _startIsolate.isolateStartHandler (dart:isolate-patch/isolate_patch.dart:216)
#10 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:124)知道我做错了什么吗?谢谢。
发布于 2014-06-11 05:15:26
您正在安装基类Objectory类。针对服务器端和浏览器环境,有面向对象的具体实现。假设您在服务器端尝试使用Objec有钱,那么您应该使用ObjectoryDirectConnectionImpl
例如,请参见console.dart
library blog_example;
import 'package:objectory/objectory_console.dart';
import '../domain_model/domain_model.dart';
const Uri = 'mongodb://127.0.0.1/objectory_blog';
main(){
objectory = new ObjectoryDirectConnectionImpl(Uri,registerClasses,true);
var authors = new Map<String,Author>();
var users = new Map<String,User>();
objectory.initDomainModel().then((_) { ObjectoryDirectConnectionImpl构造函数命令的第三个参数,在打开了对示例和测试有用的db -有用的集合后,可能应该使它成为false。
https://stackoverflow.com/questions/24149700
复制相似问题