在渡槽和扑水之间共享对象

时间:2019-01-20 23:03:43

标签: dart flutter aqueduct

我将渡槽用作服务器,在其中定义了一个用户对象并对其进行扩展以使用OAuth:

class ManagedUser extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner<_User>

在渡槽上完成工作之后,我开始研究flutter应用程序,并希望在flutter中也使用ManagedUser对象,这就是为什么我考虑将其放入单独的项目中的原因。

我现在(部署期间)面临的问题如下:

ERROR:flutter/shell/common/shell.cc(184)] Dart Error: error: import of dart:mirrors with --enable-mirrors=false

正如我在此处Dart Error: error: import of dart:mirrors with --enable-mirrors=false所读,这是因为颤振似乎并不支持部分渡槽(不幸的是,在我的共享项目中,这才需要使用ManagedObject)。

所以我有点卡在这里。我有什么选择?我真的不喜欢在颤动侧再次映射所有对象。

1 个答案:

答案 0 :(得分:1)

您将无法在同一项目中组合Aqueduct和Flutter-它们具有不同的编译目标,并且都利用了这些目标。

一般方法是使用db.collection.bulkWrite( [ { "updateOne" : { "filter" : { "_id" : 1}, "update" : { "$set" : { "path" : <newPath value> } } } }, { "updateOne" : { "filter" : { "_id" : 2}, "update" : { "$set" : { "path" : <newPath value> } } } }, ) 从您的代码创建OpenAPI文档,然后使用OpenAPI代码生成器来构建客户端代码。这种方法比在服务器和客户端之间共享代码更可取。可以在浏览器和移动目标之间共享代码。最好避免使用一种表示对象的数据库,服务器和客户端定义的类型。客户端类型和数据库表映射最终将具有难以管理的差异。