2011-05-20 12 views
11

He estado jugando con node.js por un tiempo, y realmente he llegado a apreciar lo increíble que es. Sin embargo, una cosa que estoy luchando por comprender es cómo debería estructurar mi código para que pueda mantenerse. La mayoría de los tutoriales que he visto en Internet tienen todos los JS en un solo archivo, lo cual no es una buena manera de administrar tu código. Soy consciente de que no existe tal cosa en términos reales como una "clase" en javascript, pero ¿existe una forma (estándar) para formatear mi código para la mantenibilidad de la misma manera que estructuraría un proyecto PHP, por ejemplo? ?Cómo estructurar el código nodejs correctamente

Respuesta

6

que sabemos, se puede utilizar require para incluir sus propios archivos js (que contienen métodos exportados) usando:

var req = require('./someJsFile'); 

Dentro someJsFile.js puede exportar métodos como éste:

exports.someMethod = function(){ /*...*/ }; 

Y en su archivo principal puede dirigirse a dicho método usando req.someMethod()

Así puede dividir su código en diferente nt archivos, que require desde algún archivo js central.

Here is an article Node.js que explican require

2

Después aprendió requieren trabajos en Node.js (bastante sencillo), como sugieren Kooilnc

se puede tomar un vistazo al código fuente de los módulos disponibles para Node.js:

https://github.com/joyent/node/wiki/modules

Si usted está planeando utilizar Express (una de las más robustas marco Node.js por ahí) para desarrollar su primer nodo aplicaciones, se puede echar un vistazo a sus muestras específicas aquí:

https://github.com/visionmedia/express/tree/master/examples (también hay una muestra MVC)

12

me gustaría añadir que en cuanto a capacidad de mantenimiento va, creo que el estilo típico de profundamente que anidan las devoluciones de llamadas que usan cierres son el mayor impedimento para la comprensibilidad de los programas de Nodo, además de ser completamente innecesarios.

Por cada:

a.doSomething(val, function(err,result){ 
    b.doSomethingElse(result,function(err,res){ 
    ... 
    }); 
}); 

Siempre hay una:

a.doSomething(val, onDoSomething); 

function onDoSomething(err,res) { 
    ... 
} 

Mi regla de oro es: se requiere una nueva función de devolución de llamada no cierre por algo más de tres niveles de anidamiento.

(Node.js realmente necesita un manual de estilo.)

+2

Te repito totalmente el manual del estilo. ¡Voy a sugerirlo en la lista de correo! –

Cuestiones relacionadas