无法从mongo db react native获取数据

时间:2019-01-03 22:27:20

标签: mongodb express react-native

我是React Native的新手,刚刚想出了为我的本机应用程序设置本地服务器和数据库的方法。我正在使用express和mongodb。我在后端运行服务器和mongo,并尝试进行axios调用以从数据库中获取数据,但阵列返回为空,并且数据的响应未定义。我已经在邮递员上测试了端点,并且端点很好。这是我的api axios请求和我试图获取数据的组件的示例。 在此先感谢您的帮助!另外,如果您想查看其他任何代码,请告诉我,我将其发布。

import firrtl._

object PB {
  def main(args: Array[String]): Unit = {
    Driver.execute(Array("-i", "XX.pb", "-X", "verilog", "-o", "XX.v"))
  }
}


// api.js

import axios from "axios";

    export const getAllTweets = async () => {
      await axios
        .get("http://(my ip address):(port number)/api/tweet")
        .then(response => {
          console.log("response: ", response);
          return response.data;
        })
        .catch(error => {
          console.log("There are no tweets to get!", error);
        });
    };

2 个答案:

答案 0 :(得分:0)

似乎您正在混合两种不同的调用异步函数的方法。您应该使用async/await或诺言链。你不会两者都做。

如果将getAllTweets函数更改为这样的内容。

export const getAllTweets = async () => {
  // you need a try/catch as the await function can throw
  try {
    let response = await axios.get("http://(my ip address):(port number)/api/tweet");
    console.log("response: ", response);
    return response.data;
  } catch (error) {
    console.warn(error)
    return [];
  }
};

答案 1 :(得分:0)

我找到了答案。该请求未通过标准IP地址发送。通过进入系统偏好设置=>网络=> TCP / IP(选项卡)并使用IPv4 ip地址,它解决了该问题。通过为其提供模拟器运行的虚拟路由器10.0.2.2的IP地址,它也可以工作。