我是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);
});
};
答案 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地址,它也可以工作。