使用 react-native 应用程序连接到 MongoDB Atlas Cluster db
我很难理解如何从我的 react-native 应用程序连接到 MongoDB Atlas Cluster.我要做的基本上是从我的组件登录页面(用户名和密码)获取我的数据并连接到 Atlas Cluster db 以查看数据是否存在.
I'm having a hard time understanding how to connect to the MongoDB Atlas Cluster from my react-native app. What I'm trying to do is basically take my data from my component login page (userName and password) and connect to the Atlas Cluster db to see if the data is there.
我正在使用 React Native 并使用 Expo 创建应用程序.我的登录页面打开,我输入了数据.
Im using React Native and use Expo to create the app. My login page opens up and I put in the data.
我想获取该数据,然后使用以下代码(来自 Atlas 站点连接字符串)进行连接和检查.
I want to take that data and then use the following code (from the Atlas Site Connection String) to connect and check.
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).我试图从基本的角度和所需的包来了解它是如何工作的.
Since react-native establishes a server, do I need to involve Express? Im new to this so I'm still trying to figure out what packages to utilize. Should I also install mongoose or mongoDB or both (from NPM). Im trying to wrap my head around how this works from a basic perspective and the packages required.
我想从我的登录页面到数据库对我的用户 ID 和密码执行检查,以查看用户是否存在.如果用户没有,那么我会让他们填写一些信息并注册,这意味着将新用户写入我的数据库.
I want to perform a check against my userID and PW from my login page to the DB to see if the user exists. If the user doesnt, then I'll have them fill out some info and register which means writing a new user to my db.
所以基本上,我需要了解以下代码逻辑:
So basically, I need to understand the code logic for:
- 通过我的应用连接到数据库以及何时执行此操作连接(当应用加载或每次点击登录按钮时)
- 从我的用户名和密码中获取数据并搜索 atlas db查看用户是否存在.如果是这样,则加载下一页.
- 如果用户名和密码不存在,那么我写新用户和数据库密码.
谢谢
推荐答案
如果 Expo 与 RN (React Native) 一起使用,您可以将任何 npm 包与 Expo 一起使用,但您可能需要分离才能这样做.不幸的是,任何包含原生 iOS 或 Android 代码的 npm 包都无法与 Expo 一起使用.因为 MongoDB NPM 包刚刚在他们的文档中提到了 Node.js,这并不意味着它可以在 React Native 上运行.这就是为什么 MongoDB 制作了这个关于 JUST React Native 的页面 https://docs.mongodb.com/realm/tutorial/react-native/
you can use any npm package with Expo if it works with RN (React Native), but you may need to detach in order to do so. Any npm packages which include native iOS or Android code will not work with Expo out of the box, unfortunately. Because MongoDB NPM package just mentioned the Node.js in thier docs, this doesn't mean that it will work on React Native. That's why MongoDB made this page about JUST React Native https://docs.mongodb.com/realm/tutorial/react-native/
您可能需要使用 Realm 包通过 React Native 连接到 MongoDB.
You may need to use Realm Package to connect to MongoDB with React Native.
相关文章