Acabo de clonar mi repositorio en mi Ubunto 20.04. Instalé todo, pero sigo recibiendo este error cuando intento ejecutar el servidor. Funciona bien en mi máquina de Windows.
Error: No se puede encontrar el módulo '../../Middlewares/AllowCors' Requerir pila:
- /home/medvik/Documentos/github/nextjs-ecom/ecomApi/routes/User/CreateUser.js
- /home/medvik/Documentos/github/nextjs-ecom/ecomApi/app.js
- /home/medvik/Documents/github/nextjs-ecom/ecomApi/bin/www en Function.Module._resolveFilename (nodo:internal/modules/cjs/loader:933:15) en Function.Module._load (nodo:internal/ módulos/cjs/loader:778:27) en Module.require (node:internal/modules/cjs/loader:1005:19) en require (node:internal/modules/cjs/helpers:102:18) en Object. (/home/medvik/Documents/github/nextjs-ecom/ecomApi/routes/User/CreateUser.js:4:19) en Module._compile (node:internal/modules/cjs/loader:1103:14) en Object. Módulo._extensiones..js (nodo:interno/módulos/cjs/cargador:1155:10) en Módulo.cargar (nodo:interno/módulos/cjs/cargador:981:32) en Función.Módulo._cargar (nodo:interno /modules/cjs/loader:822:12) en Module.require (node:internal/modules/cjs/loader:1005:19) { código: 'MODULE_NOT_FOUND',
La ruta del archivo de middleware central:/MiddleWare/AllowCors.js
const cors = require("cors"); const whitelist = [ "http://localhost:8080", "http://localhost:3000", ]; var corsOptionsDelegate = (req, callback) => { var corsOptions; if (whitelist.indexOf(req.header("Origin")) !== -1) { corsOptions = { origin: true }; } else { corsOptions = { origin: false }; } callback(null, corsOptions); }; exports.cors = cors(); exports.corsWithOptions = cors(corsOptionsDelegate);Mi archivo CreateUser está en /router/User/CreateUser.js
const express = require("express"); const bcrypt = require("bcryptjs"); const joi = require("joi"); const allowCors = require("../../Middlewares/AllowCors"); router.route("/") .options(allowCors.corsWithOptions, (req, res) => { res.sendStatus(200); }).post(allowCors.corsWithOptions, async (req, res) => { try {}} catch (err) { console.log(err); } });El problema es que el sistema de archivos de Linux distingue entre mayúsculas y minúsculas, a diferencia de Windows en mi código, había importado el cors middleware de esta manera.
const allowCors = require("../../Middlewares/AllowCors");esto funciona bien en Windows aunque debería haber sido la importación correcta
const allowCors = require("../../MiddleWares/AllowCors");desde que nombré mi carpeta de middleware como MiddleWares.