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
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
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)
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.)
- 1. Cómo reiniciar correctamente un servidor NodeJS?
- 2. ¿Cómo estructurar mi código javascript/jquery?
- 3. ¿Cómo estructurar la comunicación entre el servidor Nodejs y los rieles?
- 4. Aproximación idiomática para estructurar el código fuente de Clojure
- 5. Marco para estructurar código JS existente
- 6. Escribir código de "bloqueo" en nodejs
- 7. cómo estructurar app.configure in exprés
- 8. Cómo estructurar kernels OpenCL grandes?
- 9. Cómo estructurar clases en PHP
- 10. ¿Cómo estructurar TDD en Node.js?
- 11. ¿Cómo debería estructurar su archivo xml?
- 12. ¿Cómo obtener el código HTML correctamente codificado del portapapeles?
- 13. ¿Cómo se asegura de que el código se reutilice correctamente?
- 14. ¿Cómo sangrar correctamente el código mixto PHP/HTML?
- 15. ¿Cómo hacer que Eclipse formatee correctamente el código JSP?
- 16. Tablas de verdad en el código? Cómo estructurar la máquina de estado?
- 17. Cómo estructurar una tabla extremadamente grande
- 18. ¿Cómo debería estructurar proyectos complejos en C?
- 19. Integración de Heroku y Github (cómo estructurar el proyecto)
- 20. ¿Cómo estructurar mi programa Perl CGI?
- 21. ¿Entiendo este código MSIL correctamente?
- 22. Cómo estructurar un programa C efectivamente
- 23. ¿Cómo ejecuto correctamente las herramientas de desarrollo de VJET para NodeJS en Eclipse?
- 24. ¿Cómo estructurar el mapa de memoria en un emulador N64?
- 25. ¿Cómo estructurar un proyecto en Winforms usando el patrón MVP?
- 26. Cómo estructurar los repositorios de Subversion
- 27. Cómo estructurar varias páginas con RequireJS
- 28. cómo instalar correctamente el estilocop?
- 29. Cómo desconectarse de socket TCP en nodejs
- 30. ¿Cómo emulo "dormir" en NodeJS?
Te repito totalmente el manual del estilo. ¡Voy a sugerirlo en la lista de correo! –