gx
chenyc
2025-01-23 26635894607b6b046cbcfb185499c4ed521262ed
app.js
@@ -32,7 +32,7 @@
//   })
// );
app.use(cors())
app.use(express.static('./dist'))
app.use(express.static('./web'))
app.use('/uploads', express.static('./uploads'));
async function LoadModels() {
  await faceapi.nets.faceRecognitionNet.loadFromDisk(__dirname + "/models");
@@ -128,8 +128,6 @@
  }
  
}
async function getDescriptorsFromDB(image) {
  // 从mongodb获取所有的面部数据,并循环遍历每个面部数据以读取数据
  let faces = await FaceModel.find();
@@ -169,11 +167,24 @@
      imgs.push(req.files[i].path)
    }
    let label = req.body.label
    console.log('---------------',label)
    let result = await uploadLabeledImages(imgs, label);
    console.log(result)
    console.log('---------------',result)
    if(result===true){ 
        res.json({code:200, message:"录入成功"})
    }else{
        // let result = await getDescriptorsFromDB(File1);
        imgs.forEach(e=>{
          fs.unlink(e,(err)=>{
            if(err){
              console.log('删除失败')
            }else{
              console.log('删除成功')
            }
          })
        })
        res.json({code:400, message:"人脸模型录入失败,请重新录入"})
        
    }
@@ -182,34 +193,51 @@
app.post("/check-face",upload.single('file'), async (req, res) => {
  console.log(req.file)
  const File1 = req.file.path;
  let result = await getDescriptorsFromDB(File1);
  fs.unlink(File1,(err)=>{
    if(err){
      console.log('删除失败')
    }else{
      console.log('删除成功')
    }
  })
  res.json({code:200,result });
  try {
    let result = await getDescriptorsFromDB(File1);
    fs.unlink(File1,(err)=>{
      if(err){
        console.log('删除失败')
      }else{
        console.log('删除成功')
      }
    })
    res.json({code:200,result });
  } catch (error) {
    res.json({code:200,error });
  }
  
});
// 获取人脸模型
app.post('/get-face',upload.single('file'),async (req, res) => {
  console.log('------------')
  console.log(req.body)
  const label = req.body.label
  const result=await FaceModel.findOne({ "label": label })
  res.json({code:200,result})
})
// 清除人脸模型
app.post("/del-face",upload.single('file'),async(req,res)=>{
  console.log('------------')
  console.log(req.body)
  const label = req.body.label
  console.log('删除人脸库',label)
  FaceModel.findOne({ "label": label }).then(re=>{
    console.log('kankan---')
    console.log(re.images)
    if(re.images.length>0){
      for (let i = 0; i < re.images.length; i++) {
        fs.unlink(re.images[i],(err)=>{
          if(err){
            console.log('删除失败')
          }else{
            console.log('删除成功')
          }
        })
      }
    }
  })
  let result= deleteLabelImages(label)
  if(result){
    res.json({message:'success'})
  }else{
    res.json({message:"err"})
  }
@@ -222,7 +250,7 @@
// add your mongo key instead of the ***
//链接数据库初始化
mongoose
  .connect(
    `mongodb://localhost/test`,