Configurar Node, Express, TypeScript y ESLint Standard con módulos | Parte 2 - Configuración

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ต.ค. 2024

ความคิดเห็น • 7

  • @dylanstevensuarezcruz5848
    @dylanstevensuarezcruz5848 ปีที่แล้ว +1

    Puedes hacer un videos sobre los sockets y como usarlos con esta configuraciónes te lo agradecería mucho. 😉 Y perdón las molestias jeje

    • @devsolutionsmx
      @devsolutionsmx  ปีที่แล้ว

      ¡Claro que sí! A ver si en esta semana lo hago o hasta la próxima 😃

  • @dylanstevensuarezcruz5848
    @dylanstevensuarezcruz5848 ปีที่แล้ว +1

    Me gusto mucho la manera de estructura de carpetas 😊, y una pregunta ¿como hacer para que salga la barra de la parte superior de vscode?

    • @devsolutionsmx
      @devsolutionsmx  ปีที่แล้ว

      La arquitectura por módulos ayuda mucho cuando son proyectos grandes, de lo contrario, sería mucha estructura para algo tan “simple” aunque igual no está mal.
      ¿A que parte superior de VSCode te refieres? 🤔

    • @dylansuarez7390
      @dylansuarez7390 ปีที่แล้ว +1

      se actualizo vscode y ya me salio jeje.
      Una pregunta que piensas de esta forma de importar las rutas para no tener que hacerlo manualmente:
      import { Router } from 'express'
      import { readdirSync } from 'node:fs'
      import { parse, join } from 'node:path'
      const PATH_MODULES = join(__dirname, '..', 'modules')
      const router = Router()
      const cleanFileName = (fileName: string) => parse(fileName).name
      readdirSync(PATH_MODULES).forEach((folder) => {
      const routePath = join(PATH_MODULES, folder)
      readdirSync(routePath).forEach((fileName) => {
      const cleanName = cleanFileName(fileName)
      if (cleanName.endsWith('routes')) {
      void import(`${routePath}/${cleanName}`).then((moduleRouter) => {
      router.use(`/${cleanName.split('.').shift()}`, moduleRouter.router)
      })
      }
      })
      })
      export { router }
      ¿Es una mala idea? ¿O cuál sería una mejor alternativa? @@devsolutionsmx

    • @devsolutionsmx
      @devsolutionsmx  ปีที่แล้ว +1

      Hola! Es buena opción y aunque la automatización de importaciones puede ser útil para mantener un código organizado y evitar repetición, es importante tomar en cuenta las implicaciones en términos de flexibilidad y personalización de las rutas, especialmente cuando se trata de agregar middlewares específicos a estas mismas 🤔.
      Por ejemplo:
      router.use('/api/auth' authRoutes)
      router.use('/api/profile', passport, profileRoutes )
      Aqui usamos solamente passport para que se ejecute antes de profile routes, sin embargo auth routes deben ser públicas. Claro que podrías agregar el middleware en cada ruta individual dentro de su router, pero se pierde un poco la legibilidad, ya que el motivo del router principal, a demás de conectar todas las rutas funciona como un "índice de rutas", como una fuente de la verdad y debe ser explícito a la vista para saber qué rutas estan o no disponibles en tu proyecto.

    • @dylanstevensuarezcruz5848
      @dylanstevensuarezcruz5848 ปีที่แล้ว +1

      @@devsolutionsmx lo tendré en cuenta gracias 🤝