javascript - nodejs express路由器重新处理请求
问题描述
我的快速路由器处理请求两次,我不知道为什么,导致发送电子邮件两次我将显示我的前端代码和我的后端代码
FRONT:没关系,它只发送一次请求
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 () {});
}
BACK:由于某种原因,路由器重新处理请求
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);
});
}
日志说:24-09-2020 15:33:44 cargas/cargar-zip Llegó:OMNIA_MEDICA 10-09.zip 来自:console.log(fecha,hora,“cargas/cargar-zip”,“Llegó:”,文件名);
2 分钟后说:24-09-2020 15:35:58 cargas/cargar-zip Llegó:OMNIA_MEDICA 10-09.zip 来自:console.log(fecha, hora, "cargas/cargar-zip", "Llegó: “, 文件名);
无需从前面重新发送
我在前面使用Vue,服务器在nginx上
解决方案
推荐阅读
- bash - curl -C, --continue-at 管道标准输出时是否工作?
- javascript - 在本机反应中无法访问从切换发送的道具
- python-3.x - IndentationError: unindent 不匹配任何外部缩进级别...这是为什么呢?
- sql - STRING_SPLIT 以逗号分隔到不同的表
- laravel - 使用同一张卡进行订阅和一次性付款时出错
- php - 如何在 Azure 网站中创建 html/php 网页子目录?
- tensorflow - 卷积神经网络似乎是随机猜测
- python - Python:在 app.acquire_token_by_username_password 中集成用户代理
- android - 为什么 Glide 不能与 Firebase 存储一起使用
- javascript - 货币更改后,Woocommerce 迷你购物车小计无法正确更新