es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué está mal en mi código? ¿Por qué no puedo importar el enrutador?

El error dice: ‘Error [ERR_MODULE_NOT_FOUND]: No se puede encontrar el módulo ‘…\server\router\index’ importado desde \server\index.js’.

Creo que lo importé correctamente. Usé “type”:”module” en el package.json. ¿Cómo puedo arreglar esto?

Índice:


import dotenv de ‘dotenv’
import express de ‘express’
import cors de ‘cors’
import mongoose de ‘mongoose’
import cookieParser de ‘cookie-parser’
import {router} de ‘./router/index’

dotenv.config()

const PORT = process.env.PORT || 7000
const app = express()

app.use(express.json())
app.use(cookieParser())
app.use(cors())
app.use(‘/api’, router)

const start = async () => {
try {
await mongoose.connect(process.env.DB_URL, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
app.listen(PORT, () => console.log(Servidor iniciado en puerto ${PORT}))
} catch (e) {
console.log(‘Error de conexión’, e)
}
}
start()

Enrutador:


const express = require(‘express’)
import userController de ‘../controllers/user-controller’

const router = express.Router()

router.post(‘/registro’, userController.registration)
router.post(‘/iniciar-sesion’, userController.login)
router.post(‘/cerrar-sesion’, userController.logout)
router.get(‘/activar/:link’, userController.activate)
router.get(‘/actualizar-token’, userController.refresh)
router.get(‘/usuarios’, userController.getUsers)

export {router}

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el módulo ubicado en ...\server\router\index no se puede encontrar al ser importado en ...\server\index.js.

    Tras inspeccionar los fragmentos de código proporcionados, parece que el problema puede estar relacionado con el uso mixto de las declaraciones import y require en ambos archivos. Específicamente, ...\server\router\index parece usar declaraciones import, mientras que ...\server\index.js utiliza una mezcla de declaraciones import y require.

    Para resolver este problema, puede ser necesario refactorizar el código en uno o ambos archivos para usar solo las declaraciones import o solo las declaraciones require. Además, asegúrese de que los módulos relevantes estén instalados y sean accesibles para el programa.

    Como punto de partida, intente modificar ...\server\router\index para usar declaraciones require y exportar el módulo de enrutador de la siguiente manera:

    const express = require('express');
    const userController = require('../controllers/user-controller');
    
    const router = express.Router();
    
    router.post('/registration', userController.registration);
    router.post('/login', userController.login);
    router.post('/logout', userController.logout);
    router.get('/activate/:link', userController.activate);
    router.get('/refresh', userController.refresh);
    router.get('/users', userController.getUsers);
    
    module.exports = router;
    

    Luego, en ...\server\index.js, modifique la declaración de importación para router de la siguiente manera:

    const { router } = require('./router');
    

    Después de realizar estos cambios, asegúrese de que todos los módulos necesarios estén instalados y sean accesibles para el programa y vuelva a intentar ejecutar el programa.

Comments are closed.