2010-09-15 10 views
7

Me gustaría saber cuáles son los pasos necesarios para crear un framework en la parte superior de node.js. Creo que esta puede ser una buena forma de aprender, ¡por eso estoy haciendo esto!Asesoramiento sobre la creación de un micro-framework en JavaScript

He estado revisando otros micro-frameworks y frameworks más grandes, pero no puedo entender por dónde empezar. Me gustaría tu consejo sobre esto. Gracias.

Editar: MVC Framework como Sinatra, Merb, Rails.

+0

Un micro-marco para hacer qué? – MooGoo

+0

@MooGoo: Dado que él está hablando de código del lado del servidor, es probable que sea un framework MVC o MVVM. Como Rails o Django o Catalyst. – slebetman

+0

Sí, eso es correcto. – donald

Respuesta

5

Para un framework MVC, los conceptos básicos más o menos así (valga la simplicidad):

var view = 'I say, "{{first}} {{second}}".'; 
var model = { 
    first: 'hello', 
    second: function(){ 
     return 'world'; 
    } 
}; 

for(item in model){  
    var regex = new RegExp('{{' + item + '}}', 'gi'); 
    if(typeof(item) == 'function') 
     view = view.replace(regex, model[item]()); 
    else 
     view = view.replace(regex, model[item]); 
} 
console.log(view); 

inicio tan simple como sea posible y añadir pequeñas mejoras: vistas

  • Store/plantillas como archivos. Esto te da la oportunidad de jugar con la E/S de archivo asíncrono de node.js.
  • añadir soporte para los modelos más complejos - repitiendo artículos/matrices, objetos que contienen objetos
  • añadir soporte para las plantillas dentro de las plantillas
  • Fetch sus modelos a partir de una fuente de datos externa. CouchDB podría ser divertido.
  • Agregue los controladores adecuados: estos objetos deben saber qué modelos van con qué vistas y cómo unirlos
  • Asigne las URL de solicitud de Http a controladores y acciones -/person/55 podría obtener una persona con id 55 de sus datos repository,/person/add puede mostrar una interfaz de usuario para agregar a una persona; ambos usan un controlador de persona con las vistas que se muestran para la acción adecuada.

Eche un vistazo a mustache.js para un motor de plantilla pequeña. Tenga en cuenta que su terminología difiere de la mía en ejemplos y código. Lo que yo llamo una vista , que ellos llaman una plantilla y lo que yo llamo un modelo, que ellos llaman una vista . Es algo pequeño pero potencialmente confuso.

recursos adicionales:

+0

wow, muy buen comentario! ¿Tiene algún recurso que me ayudaría a aprenderlo mejor? Si no hay ningún JavaScript relacionado, tal vez algo relacionado con Sinatra, Rails podría ser útil. Gracias Corbin. – donald

+0

@donald - agregó una gran lista de módulos de nodos. Que te diviertas. –

Cuestiones relacionadas