RSS Feed

NodeJS

22

febrero 28, 2012 by Pablo Novas

NodeJS

Vamos a ir construyendo un sitio web en NodeJS pasando por los temas mas importantes para lograr una aplicación escalable y mantenible.
EDIT: Por un tema de tiempos que lleva realizar el website y la velocidad con que se actualiza NodeJS y sus paquetes (NPM) vamos a dejar para mas adelante el tema de crear un sitio web. Pero si voy a mantener los posts y sus temas, y en todo caso iremos actualizando el contenido de cada uno.

La agenda de posts por el momento es la siguiente:

  1. Introducción
  2. Instalando y Configurando
  3. Package.json
  4. Módulos
  5. Estructura MVC
  6. ExpressJS
  7. Express View Engines
  8. Ruteo – RESTfull
  9. Login y Session
  10. Modelo
  11. BDD
  12. MongoDB, Mongoose
  13. Redis
  14. ORM: Persist
  15. WebSockets y SocketIO
  16. Deploy

Dudas?, algún tema en particular?, pidan y comenten abajo!

  • http://twitter.com/kvillaloboscr Kevin Villalobos

    ¡Hola!

    La verdad es que este blog me parece un muy buen recurso para perfeccionar mi conocimiento en NodeJS. Me gustaría por el momento aprender más de lo que han puesto, por lo que me parecería genial si habilitaran los demás temas para ponerme manos a la obra y practicar.

    Saludos desde Costa Rica :).

    • pjnovas

      Buenisimo Kevin, gracias!,

      Por si las dudas, aclaro que los links no están “bloqueados” o “ocultos”, es una suerte de lista de referencia para futuros posts.

      Definitivamente vamos a estar agregando los demás y nuevos, NodeJS esta en desarrollo y tiene muchas cosas por descubrir y también otras nuevas, por lo que los temas se vuelven bastante dinámicos.

      De todas maneras, no está grabado en piedra y la idea principal es que en comunidad lo vayamos cubriendo entre todos para todos.

      Te propongo que si investigas algún tema y ves que falta, o querés expandir alguno existente, registrate sin pensarlo y armalo, va a ser más que bienvenido!

      Un Saludo a Costa Rica!

  • http://twitter.com/kvillaloboscr Kevin Villalobos

    Buen blog :)

  • http://twitter.com/kvillaloboscr Kevin Villalobos

    ((((Para los admins: si ven mi comentario anterior bórrenlo, solo lo puse porque creí que no me dejó enviar el primero, borren este también lol))))

  • deivid

    Esperando con impaciencia el apartado de Login y Session ;-) Tienes en mente utilizar ability-js con everyauth ? Saludos!

    • pjnovas

      Jaja, hay que ser mas paciente en la vida :P

      Mi idea en un principio (en el momento que hice esa lista) era mostrar como manejar login de usuarios con Express y Session en memoria, como intro a un sitio web con login. La verdad que abilityJS no la conocía, es para manejar Roles?
      La lista es mas que nada una guía, pero las sugerencias son bienvenidas.

      Si tenes algo armado (o queres armar algo) o estuviste viendo bibliotecas, etc, registrate y armate un post :) sería genial!. No tiene que ser pro, ni gurú, tu investigación va a ayudar a muchos y puede generar dudas, opiniones y debates que vienen genial y te ayudan a vos también! ;)

      Saludos!

      • deivid

        Por lo que tengo entendido el uso de ability-js & everyauth permiten gestionar roles de usuario. Tema muy importante para aplicar a muchas aplicaciones. Actualmente estoy “jugando” con node y expressjs. En cuanto tenga algo “montado” te lo haré saber. En cualquier caso, te animo a que sigas profundizando en esta temática ;-) Un saludo amigo!

        • pjnovas

          Buenisimo saludos!

  • dani m.

    Excelente iniciativa. Casi nunca comento (mal lo mío) pero este blog lo merece. Antes que nada tremendo el nombre! =)

    Un pequeño aporte: No se si ya lo tendrás resuelto pero para la sección de ruteo y REST te puede servir el módulo express-resource…

    https://github.com/visionmedia/express-resource

    No tengo experiencia en cuanto a su utilización en ambientes de production pero estuve probándolo un poco y tiene buena pinta.

    Gracias che!

    • pjnovas

      Muy bueno!, después armo el post ese con Express Resource, tenia otra lib en el momento en que arme la lista, pero eso va mejor y engancha con express asi que tiene mucho mas sentido, grax!

  • http://twitter.com/Canariofr1 Canariofr

    Hola muy buenas¡¡¡
    Primero felicitarte por tu labor titanica con el blog.
    Y por otro lado me gustaria proponerte dos retos con NodeJS + Express + mongoose + mongodb.
    el motivo de los retos es por que yo no tengo base de programación y voy aprendiendo de preguntar y leyendo codigo e intentar aprender. Así que el reto en realidad es que llegue a entenderlo. jejejejeje.
    Bueno a lo que iba.
    1) Un login con esa tecnología
    2) Un form con el que aparte de datos subas fotos por ejemplo.

    Espero que no sea mucho pedir.
    Muchas gracias por tu tiempo y un saludo.

    • pjnovas

      Es buena, tengo algo armado como para liberar un poco y mostrar, viste el post de Alejandro? (item 12) tiene Mongoose, y esta piola, después tenes el de Express (item 6), pero está viejo ya (version 2.0), tengo que armar uno con express 3, voy a ver si armo algo.

      Saludos y gracias!

  • http://twitter.com/Canariofr1 Canariofr

    Por cierto solo un comentario.

    Yo suelo utilizar nodemon en los proyectos ya que con él te evitas tener que actualizar siempre el proyecto en la terminal y solo tendrías que hacerlo cuando actalices el app.js o el server.js segun como prefirais llamarlo

    • pjnovas

      Piola!, ayer me contaban sobre Forever en modo “watch” que funciona igual. Hacete un post de Nodemon! ;)

  • Pingback: ddenti how to make money

  • Nico

    Hola a todos.
    primero que nada, muy bueno el blog. Queria comentar una cosa: ya que node se esta volviendo cada vez mas popular, yo queria meterme (en el futuro, ahora estoy viendo backbone (cuyo post que uds armaron esta muy piola) y recien mas adelante node) a aprenderlo, lo malo es que no se bien por donde arrancar, ya que la parte de server se muy poco (hago cosas con php); lo que me lleva a la pregunta de: que me conviene aprender y a que nivel antes de arrancar con node???

    Muchas gracias
    Ustedes se zarpan en grosos!!!!

    • pjnovas

      Nico, gracias por la buena onda!

      En mi experiencia y opinión personal, para meterse con node sin embarrarse te conviene aprender mas a fondo javascript como lenguaje (dejando de lado el DOM, jQuery, backbone, browser, etc), y como complemento para arrancar callbacks, como funciona javascript, el tema del “orientado a eventos”…

      Por último, entiendo que con node te vas a meter para utilizarlo como Servidor HTTP (es mucho mas que en un servidor http), yo arrancaría por “que es node” sin pensar en un servidor web, y después entender un poco mas a fondo que es el protocolo HTTP, que es TCP/IP, pedidos y respuestas cliente-servidor y poder sacarle jugo a nodejs.

      Como resumen, es un viaje largo que hay que hacer con calma, pero es muy divertido y seguramente vas a aprender mucho mas que sólo “js y node”, yo aprendí muchas otras cosas.

      Para la mayoría de las cosas que te comento ya hay posts armados, podes arrancar mirando la página de Javascript en: http://fernetjs.com/javascript/, la intención fue orientar un poco en que orden aprender javascript como lenguaje.

      Espero que te sirva!
      Saludos!

  • Rodrrii

    Una pregunta al sitio lo mantenes vos solo ? Otra mas.. el logo lo hiciste vos ? Sos argentino made in Cordoba ? jajaja

    • pjnovas

      Jaja. .. El sitio lo arrancamos entre amigos y esos son los admins, pero fernetjs es de todo el que quiera participar. Podes leer el FAQ para más info.
      El logo lo hice yo. .. es mas, le saqué una foto a mi mano para ayudarme a dibujarlo jaja.
      Somos argentinos de Buenos Aires.

      Saludos!

  • Rodrrii

    loco ya te comente anteriormente.. no quiero quedar rompe huev0&. Pasa que cuando algo me llama la atencion pregundo. el logo lo hiciste con ilustrator o photoshop ? El contorno de la mano tiene un estilo tipo lapiz y el baso tambien. algun comentario orientativo ? Gracias mostro !

    • pjnovas

      Buenas!, no hay drama, lo hice en Photoshop usando la herramienta Pluma (sobre una foto mia y un dibujo a mano escaneado) armando “shapes” (por lo que se puede hacer también en Ilustrator, no use nada especifico de photoshop). El contorno es el borde de la shape y en algunos casos es otra shape mas para hacerlo mas irregular.

      Saludos!

      • Rodrrii

        La verdad que te felicito porque esta muy bueno y muy orijinal, te felicito encerio man… saludos !