如何将flutter与MongoDB连接起来
Posted
技术标签:
【中文标题】如何将flutter与MongoDB连接起来【英文标题】:How to connect flutter with MongoDB 【发布时间】:2020-05-12 10:58:12 【问题描述】:我有一个使用 Nuxt JS 和 MongoDB 构建的网站。
我想用flutter创建一个移动应用,不知道怎么连接flutter和MongoDB。
给我一些代码示例。
这是解决方案! (Click here)
实际上,我发布了一篇关于它的博客,请随时查看解决方案!
-
适用于 MongoDB 以及 MongoDB Atlas
初学者指南
【问题讨论】:
【参考方案1】:Sandeep Krishna 的回答是正确的,但如果您已经有 Nodejs 后端,那么请公开 REST API 并使用 http、dio 或其他类似包连接 Flutter。由于将前端直接连接到数据库是不好的。这只是一个建议。
【讨论】:
如果我使用 nodejs 后端作为 rest api,那么它是否对性能不利? 不,它不应该对性能不利。您无需在前端执行繁重的业务逻辑,您只需显示一个加载器,直到数据来自后端。我建议您阅读此 quora 问题中的第一个答案:Why do we need a back-end in web development? Can't the front-end directly send requests to the database? 我使用哪个前端框架或库来获得最佳性能。 (忽略反应) 每个库的框架,如果你知道如何使用它是好的,如果你知道如何使用它,你可以获得良好的性能,它的局限性和它是如何工作的。这不是像去使用它那样的直接答案,它会更好,所有的东西和推荐一个好的框架都需要长时间的讨论。如果你现在需要一个答案,那就随心所欲。【参考方案2】:导入flutter库mongo_dart并连接数据库。 mongo_dart 在纯 Dart 中实现的 MongoDB 服务器端驱动程序库。
希望下面的代码 sn-p 有帮助!!
import 'package:mongo_dart/mongo_dart.dart' show Db, DbCollection;
class DBConnection
static DBConnection _instance;
final String _host = "DATABASE SERVER";
final String _port = "DATABASE PORT";
final String _dbName = "DATABASE NAME";
Db _db;
static getInstance()
if(_instance == null)
_instance = DBConnection();
return _instance;
Future<Db> getConnection() async
if (_db == null)
try
_db = Db(_getConnectionString());
await _db.open();
catch(e)
print(e);
return _db;
_getConnectionString()
return "mongodb://$_host:$_port/$_dbName";
closeConnection()
_db.close();
【讨论】:
地图集呢?以上是关于如何将flutter与MongoDB连接起来的主要内容,如果未能解决你的问题,请参考以下文章
如何将 VS Code 中的 Flutter 与 BlueStacks 4 模拟器连接起来?
如何在 Flutter 中将 Visual Studio Emulator 与 VScode 连接起来?
docker compose 将 mongodb 容器与节点 js 容器连接起来