mongodb - 如何在我的 React-Native 项目中重用现有的 API(mongo + Passport-local)?

标签 mongodb reactjs react-native redux

我有一个现有的 API(node + mongo + Passport-local),我已经使用了一段时间了。我有一个 Users 模型和 Posts 模型。使用 postman ,我可以注册、登录和创建/编辑/删除帖子。

Users 模型包含 useridusernamedisplayname,当然还有护照自动加盐的密码/哈希值。

Posts 模型具有 postiduseridtitletext、和创建日期

我想在我的 react native 应用程序中使用这个现有的设置。那么,如果我在 localhost:9000 或其他东西上运行此 API,并且我想在其上注册用户以及登录用户发布的任何新帖子,这可能吗?

我希望使用 redux 来管理我的用户状态。用户对象将初始化为 null,因此如果为 null,则显示登录页面。现在忽略注册,因此如果用户输入用户名/密码并点击提交,则会触发 userLogin 操作,并使用用户名/密码向 localhost:9000/login 发送 POST,然后我得到回复给我用户名和显示名称。用户对象已更新,并且由于它存在,因此用户将被路由到主应用程序页面。

我一直在尝试了解 react native 应用程序的用户身份验证,但到目前为止我发现的内容非常令人困惑。我尝试使用解析,但花了 2 个小时后无法让它工作,老实说我什至不明白它。我只是希望能够使用本地 API 并在本地进行测试。

谢谢

最佳答案

您可以使用 fetch 来执行“GET”和“POST”请求。用户名和密码进入主体对象。例如:

fetch('http://localhost:9000/login, {
      method: 'POST',
      crossOrigin: true,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        email: email,
        password: pw
      })
}).then((r) => {r.json()})
.then((result) => {... do something with the result})

由于 fetch 返回一个 Promise,因此您可以在“then”语句中获得结果。

根据响应,您可以将商店中的状态更新为“已登录”或“已注销”。

关于mongodb - 如何在我的 React-Native 项目中重用现有的 API(mongo + Passport-local)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973462/

相关文章:

python - 从 2.3.1 升级到 Spark2.4.2 但 mongodb 连接器停止工作

node.js - 如何知道 mongodb nodejs native 的当前池大小?

javascript - 尝试删除 Node.js Express MongoDB Jade 应用程序中的条目

javascript - React JS 中的 registerServiceWorker 做了什么?

react-native - 找不到 swiperrefreshlayout.jar (androidx.swiperefreshlayout :swiperefreshlayout:1. 0.0)

react-native - Expo Asset.fromModule().localUri 返回 null

mongodb - 如何将来自不同数组的两个匹配对象合并为一个对象?

javascript - babel 不识别 jsx 语法... SyntaxError : Unexpected token (25:1)

xcode - 如何解决Xcode错误: no such file or directory: fishhook.c?

javascript - 在 const 声明中使用 React prop 或 html 元素