nodejs表达路由器重新处理请求

时间:2020-09-29 20:39:45

标签: javascript node.js express router nodemailer

我的快速路由器两次处理请求,我也不知道为什么,也导致两次发送电子邮件 我将显示我的前端代码和后端代码

前:没关系,它只发送一次请求

async cargarZip() {
  let formData = new FormData();
  let zipFile = document.querySelector("#archivoZip");
  formData.append("archivoZip", zipFile.files[0]);
  await axios.post(
    CONSTANTES.URL_RUTA_SERVICIOS + "cargas/cargar-zip", 
    formData,
    {headers: {
        Authorization: `Bearer ${localStorage.token}`,
        "Content-Type": "multipart/form-data",
      },
     })
     .then(function (response) {
       // actions
     })
     .catch(function () {});
}

返回:由于某种原因,路由器重新处理了请求

    cargasResultadosRouter.post('/cargar-zip', mdAutenticacion.verificaToken,
        async function (req, res) {
    res.header("Content-Type", "application/json; charset=utf-8");

    moment.locale('es')
    let fecha = moment().format("L").split("/").join("-")
    let hora = moment().format('LTS')

    let file = req.files.archivoZip

    let fileName = file.name.replace(/ /, '_')
    console.log(fecha, hora, "cargas/cargar-zip", "Llegó:", fileName);

    let dir = './resultadosParaEnviar';

    if (!fs.existsSync(dir)) {
        fs.mkdirSync(dir);
        console.log(dir, "Creado");
    }

    let ruta = "/opt/app/ServiciosCliexCovid/OM_ServicioCliexCovid/public/resultadosParaEnviar/"

    let rutaArchivoZip = ruta + fecha + " " + fileName
    file.mv(rutaArchivoZip, async function (err) {
        if (err) {
            return res.status(500);
        } else {
            let rutaArchivoFolder = ruta + fecha + "_" + fileName.split(".")[0];
            if (!fs.existsSync(rutaArchivoFolder)) {
                fs.mkdirSync(rutaArchivoFolder);
                console.log(rutaArchivoFolder, "Creado");
            }
            await decompress(rutaArchivoZip, rutaArchivoFolder).then(async files => {
                await esperarTiempo(100)
                console.log(fileName, 'Extraido');
                let emails = []
                for (const [index, file] of files.entries()) {
                    await esperarTiempo(100)
                    let codigo = file.path.match(/(\d+)/);
                    console.log(index, "Archivo Encontrado:", codigo, "de", files.length);
                    if (codigo) {
                        let archivos = []
                        archivos.push({
                            filename: file.path,
                            path: rutaArchivoFolder + '/' + file.path
                        })
                        // Get email
                        let correo = await BD.CargarResultadosDao.CorreoPruebaMolecular(codigo[0])

                        emails.push({
                            correo: correo,
                            archivos: archivos
                        })
                        // Sends email
                        if (correo !== '') {
                            await enviarCorreoConPruebaMolecular(correo, archivos)
                            await esperarTiempo(1500)
                        }

                    } else {
                        console.log("NO ENCONTRO:", file.path);
                    }
                }
                res.json(emails);
            });                
      }
    })
})

function esperarTiempo(tiempo) {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve("resolved");
        }, tiempo);
    });
}

LOG说: 24-09-2020 15:33:44 cargas / cargar-zipLlegó:OMNIA_MEDICA 10-09.zip 从: console.log(fecha,hora,“ cargas / cargar-zip”,“Llegó:”,文件名);

2分钟后说: 24-09-2020 15:35:58 cargas / cargar-zipLlegó:OMNIA_MEDICA 10-09.zip 从: console.log(fecha,hora,“ cargas / cargar-zip”,“Llegó:”,文件名);

没有从前面重新发送

我在前面使用Vue,服务器在nginx上

0 个答案:

没有答案