获取 api 不将数据发布到后端服务器

时间:2021-02-07 12:20:40

标签: azure react-native express fetch-api face-api

我正在使用 azure 的认知服务,我使用的是人脸 API,在前端,用户将拍照,然后调用 API 来检查是否检测到人脸,然后使用 Add Face under FaceList 添加人脸 ID 作为在 azure 文档中,如果面部添加成功,我想更新数据库中的列,这里我调用一个名为 senddata() 的函数,它将使用 fetch API 将数据发送到后端服务器,然后在服务器中,数据库列将被更新,问题是在成功添加人脸后,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=true&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' });
    }
  });
});

请帮帮我

0 个答案:

没有答案