如何将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 应用与 abp.io 框架连接起来

如何在 Flutter 中将 Visual Studio Emulator 与 VScode 连接起来?

docker compose 将 mongodb 容器与节点 js 容器连接起来

使用聚合 mongodb mongoose 将集合子子文档与其他集合子文档连接起来

使用哪个包将 R 与 MongoDB 连接起来? [关闭]