#azure #react-native #express #fetch-api #face-api
#azure #react-native #экспресс #fetch-api #face-api
Вопрос:
Я использую когнитивный сервис azure, который я использую Face API, во внешнем интерфейсе пользователь сделает снимок, затем вызовет API, чтобы проверить, обнаружено ли лицо или нет, после этого идентификатор лица будет добавлен с использованием Add Face under FaceList
as в документации Azure, после этого я хочу обновить столбец в базе данных, если лицо добавлено успешно,здесь я вызываю вызываемую функцию senddata()
, которая будет использовать fetch API для отправки данных на серверный сервер, затем на сервере будет обновлен столбец базы данных, проблема в том, что после успешного добавления face функция senddata () не отправляет никаких данных на серверный сервер: вот код съемки:
const takePicture = async () => {
if (camera) {
const data = await camera.current.takePictureAsync({ quality: 0.25, base64: true });
const selfie_ab = base64ToArrayBuffer.decode(data.base64);
setTakingPic(true)
try {
const facedetect_instance_options = { ...base_instance_options };
facedetect_instance_options.headers['Content-Type'] = 'application/octet-stream';
const facedetect_instance = axios.create(facedetect_instance_options);
const facedetect_res = await facedetect_instance.post(
`/detect?returnFaceId=trueamp;detectionModel=detection_02`,
selfie_ab
);
console.log("face detect res: ", facedetect_res.data);
if (facedetect_res.data.length) {
const add_face_instance_options = { ...base_instance_options };
add_face_instance_options.headers['Content-Type'] = 'application/octet-stream';
const add_face_instance = axios.create(add_face_instance_options);
const addface_res = await add_face_instance.post(
`/facelists/${facelist_id}/persistedFaces`, selfie_ab
);
if (addface_res.data.persistedFaceId.length) {
const status = "on hold";
const faceid = addface_res.data.persistedFaceId;
senddata(status, faceid)
console.log("Face add and send for approval: ", addface_res.data.persistedFaceId);
} else {
Alert.alert("error", "something went wrong");
}
} else {
Alert.alert("error", "Detection failure. Please make sure there is sufficient light when taking a selfie");
}
} catch (err) {
console.log("err: ", err);
}
}
};
здесь senddata()
функция:
const senddata = (status, faceid) => {
console.log(status)
console.log(faceid)
fetch('http://*********/users/updateRegStatus', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: status,
faceid: faceid
})
})
.then((response) => response.json())
.then((res) => {
if (res.success === true) {
alert(res.message);
navigation.navigate('dashboard')
}
else {
alert(res.message);
}
})
}
и следующий код формирует серверную часть, которая для обновления базы данных:
router.post('/updateRegStatus', function (req, res, next) {
var status = req.body.status;
var faceid = req.body.faceid;
connection.query("INSERT INTO face_status (status,faceid) VALUES (?,?) ", [status, faceid], function (err, row) {
if (err) {
console.log(err);
} else {
res.send({ 'success': true, 'message': 'Your face details sent for approval' });
}
});
});
пожалуйста, помогите мне
Комментарии:
1. Не могли бы вы, пожалуйста, проверить, получил ли ваш резервный сервер ваш запрос?
2. @JimXu нет, сервер не получает запрос