#node.js #mongodb #react-native #axios #expo
Вопрос:
Я создаю API и собственное приложение для реагирования. Сервер работает хорошо (протестирован с почтальоном), но приложение не вызывает сервер. Он блокирует, когда axios должен отправить запрос на публикацию. Я также попытался ввести ip-адрес вместо localhost, но это тоже не сработало. (ВОТ МОЙ КОД)
const LoginScreen = ({ navigation }) => {
const [hidePassword, setHidePassword] = useState(true);
const [message, setMessage] = useState();
const [messageType, setMessageType] = useState();
const handleSubmit = (credentials, setSubmitting) => {
handleMessage(null);
const url = "http://192.168.1.110:5000/bankrate/login/login";
axios
.post(url, credentials)
.then((res) => {
const result = res.data;
const { message, status, data } = resu<
if (status !== "SUCCESS") {
handleMessage(message, status);
} else {
navigation.navigate("HomeScreen", { ...data[0] });
}
setSubmitting(false);
})
.catch((error) => {
console.log(error);
setSubmitting(false);
handleMessage(
"An error occurred! Check your network connection and try again!"
);
});
};
Комментарии:
1. Итак, вы создали серверную программу. То, что мы видим здесь, — это код клиентского приложения, которое взаимодействует с сервером?
2. Есть ли какая-то особая причина, по которой вы используете Axios? JavaScript имеет хороший API выборки, который может выполнить эту работу: developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
Ответ №1:
Вместо этого используйте API выборки JavaScript:
const handleSubmit = (credentials,setSubmitting) => {
fetch("http://192.168.1.110:5000/bankrate/login/login", {
method: "post",
headers: { "Content-Type": "insert-mime-type-here (see below)" }
body: // whatever you're sending to the server
}}).then((response) => { if (response.status() === 400) {
// return either response.json() or response.body() or whatever (see below for details)
else {
return Promise.reject();
}).then((data) => { // do whatever you want to with the data you get from the server }).catch((error) => // promise rejected);
Используемый вами тип MIME-это тип MIME всего, что вы отправляете на сервер.
Если сервер отвечает объектом JSON, используйте response.json(), и тогда данные будут объектом JavaScript. Если сервер ответит чем-либо еще, используйте response.text (), и тогда данные будут текстовыми.