使用本地应用程序

时间:2019-12-12 23:45:25

标签: javascript mongodb react-native mongoose expo

我很难理解如何从我的本机应用程序连接到MongoDB Atlas集群。我想要做的基本上是从组件登录页面(用户名和密码)中获取数据,然后连接到Atlas Cluster数据库以查看数据是否存在。

我使用React Native并使用Expo来创建应用程序。打开我的登录页面,然后输入数据。

我想获取这些数据,然后使用以下代码(来自Atlas网站连接字符串)进行连接和检查。

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<userName>:<password>@testcluster1-dbdq3.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // perform actions on the collection object
  client.close();
});

由于react-native建立服务器,我需要参与Express吗?这是我的新手,因此我仍在尝试找出要使用的软件包。我是否还应该安装mongoose或mongoDB或同时安装(从NPM)。我试图从基本的角度和所需的软件包中总结一下这是如何工作的。

我想从我的登录页面到数据库对我的userID和PW进行检查,以查看该用户是否存在。如果用户没有,那么我将让他们填写一些信息并注册,这意味着将新用户写入我的数据库。

所以基本上,我需要了解以下代码的逻辑:

  1. 通过我的应用程序连接到数据库以及何时执行此操作 连接(应用加载时或每次单击登录按钮时)
  2. 从我的用户名和密码中获取数据,然后搜索atlas数据库 查看用户是否存在。如果是这样,那么将加载下一页。
  3. 如果用户名和密码不存在,那么我写新用户 和数据库密码。

谢谢

2 个答案:

答案 0 :(得分:0)

我认为您应该按照mongodb在此处建议的格式重写代码:

https://mongodb.github.io/node-mongodb-native/api-articles/nodekoarticle1.html

从本质上说:

        try {
        JSONObject obj=new JSONObject(response);
        String name=obj.getString("name");
        int age=obj.getInt("age");
        String city=obj.getString("city");
    } catch (JSONException e) {
        e.printStackTrace();
    }

答案 1 :(得分:0)

如果任何npm软件包可与RN(React Native)一起使用,则可以在Expo中使用任何npm软件包,但是您可能需要分离才能这样做。不幸的是,任何包含本地iOS或Android代码的npm软件包都无法与Expo一起使用。由于MongoDB NPM软件包仅在其文档中提到了Node.js,因此这并不意味着它将在React Native上运行。这就是为什么MongoDB在此页面上发布有关JUST React Native https://docs.mongodb.com/realm/tutorial/react-native/

的原因

您可能需要使用Realm Package通过React Native连接到MongoDB。