Hola, soy relativamente nuevo en Node.js y he creado algunas aplicaciones pequeñas en Express.js y Koa.js. Mi elección personal es Koa.
1. Koa es más ligero y más modular que el expreso. Esto significa que cuando creo una aplicación ya no hay toneladas de cosas, es una aplicación completamente vacía y solo uso las que quiero usar. Si quiero un registrador para imprimir solicitudes y respuestas en mi consola? Añado el middleware koa-logger. Si quiero páginas estáticas (como html, archivos js, etc.), agrego el middleware koa-static. Agregar middleware toma una línea de código y es muy fácil. De hecho, creo que esto es genial para aprender porque si te hace entender todas y cada una de las partes de la aplicación que estás creando. Siempre tuve malas experiencias en el pasado con marcos en los que generarían código automáticamente y no tenía idea de por qué estaba allí o cómo encajaba con el resto de la aplicación hasta mucho más tarde.
2. También me gustan las devoluciones de llamada, pero incluso al crear algunos envoltorios de API simples, descubrí que empecé a tener problemas molestos con las devoluciones de llamada. La conclusión es que si aprende a codificar con generadores y en Koa, podrá escribir en 10 líneas lo que antes habría tomado como 30 líneas. Realmente es así de diferente. Honestamente, una vez que superé el primer tipo de obstáculo, en realidad no fue tan difícil conceptualizar una aplicación koa. Al igual que acaba de poner sus funciones asíncronas después de una declaración de rendimiento.
3. Koa fue creado por el creador original de Express. Koa está destinado a resolver muchos de los problemas en Express, como tener que hacer parches de mono. (El parche de mono es esta cosa horrible en la que modificas el código preempaquetado). Es definitivamente posible que así sea como la gente programará en el futuro. Es una forma extremadamente elegante, limpia y eficiente de programar de forma asíncrona (hasta que la espera asíncrona se produce en unos pocos años …).
- ¿Cuál es la mejor manera de estudiar el álgebra 2 y el precálculo?
- ¿Cómo aprendió Roman Trusov el aprendizaje automático?
- Cómo empezar a aprender un idioma.
- ¿Qué puedo hacer fuera de la escuela en relación con las matemáticas?
- ¿Por qué se elige a Mayamalavagowla como la primera raga para aprender en la música carnática?
Koa es un poco más difícil porque requiere conocimientos previos en generadores y promesas (o trucos). Dicho esto, hay muchas explicaciones y videos en youtube que explican estos conceptos. Como mencioné antes, no soy un experto en esto, pero he jugado con ambos y personalmente prefiero a Koa.
Una cosa que realmente recomendaría en lugar de saltar directamente a los marcos es hacer algunos paquetes pequeños en npm (gestor de paquetes de nodo). Usted puede experimentar con la programación de devolución de llamada allí. Hay un montón de tutoriales sobre cómo puede hacer y publicar una pieza de software en npm. Si quieres darme de alta en @yvanscher en twitter y podemos chatear más.
Editar:
Quiero agregar una edición a todo esto ahora que he estado haciendo un poco más de Koa.
Descubrí que a veces el código de devolución de llamada promisificable para ser utilizado en Koa tiene algunos efectos extraños. Por ejemplo, usar bluebird para promisificar y fb para crear una aplicación que acceda a la API de Facebook produce algunos resultados extraños. En lugar de que los resultados se almacenen en una variable `var resultado = rendimiento promisifedfb.api (‘4’)`, se lanzan y se deben capturar con los bloques try catch. Solo debes saber que si eliges usar Koa es posible que tengas que experimentar para usar paquetes que aún no han creado un soporte explícito y las cosas pueden ponerse un poco complicadas. Si me dejas un voto a favor, voy a darte un poco de mi tiempo para tratar de ayudarte a resolver tu problema. Solo pégame en twitter @yvanscher.
Edición 2:
Quiero agregar una edición, especialmente porque la gente parece leer esta respuesta. todo se reduce a esto: aunque creo que cosas como koa son el futuro de javascript, probablemente debas usar Express. más gente usa Express y ha sido usado muchas veces más que koa; Hay una gran ventaja de trabajar con el software que utilizan todos los demás. cuando el software ha sido probado en el campo de batalla por miles o millones de personas, es más fácil depurar problemas, es más fácil evitarlos, y casi todos los problemas tienen una solución ya establecida en algún lugar por alguien que se encontró con él primero. Creo que es apropiado mencionarlo ya que he estado trabajando como ingeniero de software, ingeniero de datos y, a veces, científico de datos por algunos años. Principalmente uso matraz cuando necesito hacer una aplicación web; está convenientemente en Python como mi otro canal de datos y código de procesamiento de datos. ahora puede que se pregunte ‘¿cómo puede el nuevo software convertirlo en la corriente principal si la gente solo usa lo probado y verdadero? Esa es una historia para otro tiempo / post. solo sepan que es difícil y generalmente ocurre cuando los ingenieros de software con experiencia deciden probar una nueva tecnología o marco. El beneficio marginal tiene que ser mejor para ese grupo de usuarios. Buena suerte con tu aprendizaje y si todavía decides usar koa más poder para ti. Es un marco realmente genial. como siempre estoy disponible en twitter para ayuda de codificación.