React Native 如何将 AsyncStorage 数据发送到 MongoDB 数据库?

Posted

技术标签:

【中文标题】React Native 如何将 AsyncStorage 数据发送到 MongoDB 数据库?【英文标题】:React Native how to send AsyncStorage data to MongoDB database? 【发布时间】:2022-01-15 19:07:57 【问题描述】:

我无法将存储在 AsyncStorage 中的用户输入传输到我的 MongoDB 数据库 我有一个从终端开始的 MongoDB 数据库。控制台输出如下,所以应该没有任何问题:

服务器在 PORT 5000 上启动 MongoDB Connected cluster0-shard-00-02.mhqqx.mongodb.net

之后,我使用 expo go 打开我的 React Native 应用程序,然后转到我的注册屏幕,在那里应该创建一个新的用户配置文件。我将每个需要的用户输入(姓名、电子邮件等)以 JSON 格式存储在 AsyncStorage 中,如下所示:

const nameString = JSON.stringify(name)
const emailString = JSON.stringify(email)
AsyncStorage.setItem('nameInput', nameString);
AsyncStorage.setItem('emailInput', emailString);
setName('');
setEmail('');

当我在控制台打印 AsyncStorages 的值时,没有错误,数据显示正确。因此用户输入存储在 AsyncStorages 中。

但在此之后,我尝试通过使用 onPress 调用按钮触发以下函数将 AsyncStorage 数据传输到我的 MongoDB 数据库:

const submitHandler = async (e) => 

        if(password !==confirmpassword) 
            setMessage('Passwords do not match')
         else  
            setMessage(null)
            try 
                const config = 
                    headers: 
                        "Content-type": "application/json",
                    ,
                ;

                setLoading(true);

                const  data  = await axios.post(
                    "/api/users",
                    name, email, password,
                    config
                );

                setLoading(false);
             catch (error) 
                setError(error.response.data.message);
            
        

        console.log(email);
    ;

当我检查数据库时,我的数据库中没有显示新信息。数据库功能正常,定义的路线应该是正确的。可能是什么问题?

我还可以像这样从 Postman 创建一个新用户:

我已经尝试为这个问题寻找一些答案一段时间了,但没有成功。非常感谢您的帮助!

【问题讨论】:

console.log 数据会得到什么? 我得到了用户在输入字段中用引号输入的所有内容。例如,如果用户在电子邮件字段 user@gmail.com 中键入,控制台会记录“user@gmail.com” 我说的是你声明的变量data。这个const data = await axios.post("/api/users",name, email, password,config); 当我 console.log 时它没有给我任何东西。 【参考方案1】:

你可以这样做

await axios.post("/api/users",
name, email, password,config)
.then(res=> console.log(res)
.catch(err => console.log("api error", err)

然后看看你在相应的终端中得到了什么。 注意 您的 API 端点 (api/users) 无效。从您正在使用的 Postman 添加相同的 URL。

【讨论】:

以上是关于React Native 如何将 AsyncStorage 数据发送到 MongoDB 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数从 React-Native 发送到 Native

如何将 react-native-flux 与 react-drawer 一起使用

如何将 oAuth 会话令牌从 salesforce react native 应用程序传递给 react-native webview?

如何将更改的状态发送到 react-native 中的组件?

如何将 OpenCV 库导入 React-Native 项目

如何将 react-native 从 0.56.0 降级到 0.55.4 版本?