2010-09-15 15 views
7

Mi piacerebbe sapere quali sono i passaggi necessari per creare un framework in cima a node.js. Credo che questo possa essere un buon modo per imparare, ecco perché lo sto facendo!Consigli per la creazione di un micro-framework in JavaScript

Ho controllato altri micro-framework e framework più grandi ma non riesco a capire da dove iniziare. Mi piacerebbe il tuo consiglio su questo. Grazie.

Modifica: MVC Framework come Sinatra, Merb, Rails.

+0

Un micro-quadro per fare cosa? – MooGoo

+0

@MooGoo: Dal momento che sta parlando di codice lato server, probabilmente è un framework MVC o MVVM. Come Rails o Django o Catalyst. – slebetman

+0

Sì, è corretto. – donald

risposta

5

Per un framework MVC, i concetti di base più o meno così (perdonate la semplicità):

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); 

Inizia il più semplice possibile e aggiungere piccoli miglioramenti: vista

  • magazzino/modelli come File. Questo ti dà la possibilità di giocare con I/O di file async di node.js.
  • aggiungere il supporto per i modelli più complessi - ripetendo articoli/array, oggetti che contengono oggetti
  • aggiungere il supporto per i modelli all'interno di modelli
  • Fetch tuoi modelli da un'origine dati esterna. CouchDB potrebbe essere divertente.
  • Aggiungere regolatori adeguati - questi oggetti dovrebbero sapere quali modelli andare con quali viste e come cucire insieme
  • mappa La tua richiesta HTTP URL per i controller e le azioni -/persona/55 potrebbe andare a prendere una persona con id 55 dai dati repository,/person/add potrebbe far apparire un'interfaccia per aggiungere una persona - entrambi usano un controller personale con le visualizzazioni visualizzate per l'azione appropriata.

Dai uno sguardo a mustache.js per un motore modello piccolo. Nota che la loro terminologia differisce dalla mia negli esempi e nel codice. Quello che io chiamo un vista, che chiamano un modello e quello che io chiamo un modello, che chiamano un vista. È una cosa piccola ma potenzialmente confusa.

risorse aggiuntive:

+0

wow, commento molto carino! Avete qualche risorsa che mi aiuterebbe a imparare meglio? Se non ci sono JavaScript correlati, forse qualcosa legato a Sinatra, Rails potrebbe essere utile! Grazie Corbin. – donald

+0

@donald - ha aggiunto una grande lista di moduli nodo. Divertiti. –

Problemi correlati