使用 react-native 应用程序连接到 MongoDB Atlas Cluster db

2023-11-29前端开发问题
11

本文介绍了使用 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:

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

谢谢

推荐答案

如果 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.

这篇关于使用 react-native 应用程序连接到 MongoDB Atlas Cluster db的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455

Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)...
2024-04-20 前端开发问题
5

CoffeeScript 总是以匿名函数返回
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)...
2024-04-20 前端开发问题
13