Esta es la respuesta indirecta, en la estructura de carpetas en sí, muy relacionado.
Hace unos años tuve la misma pregunta, tomé una estructura de carpetas pero tuve que hacer un montón de directorios moviéndome más adelante, porque la carpeta tenía un propósito diferente al que he leído en internet, es decir, qué la carpeta particular tiene diferentes significados para diferentes personas en algunas carpetas.
Ahora, habiendo realizado varios proyectos, además de la explicación en todas las demás respuestas, en la estructura de la carpeta en sí, recomiendo encarecidamente seguir la estructura del propio Node.js, que se puede ver en: https://github.com/nodejs/node. Tiene gran detalle sobre todos, como Linters y otros, qué estructura de archivos y carpetas tienen y dónde. Algunas carpetas tienen un README que explica qué hay en esa carpeta.
Comenzar en la estructura de arriba es bueno porque algún día entra un nuevo requisito pero usted tendrá un alcance para mejorar ya que es seguido por el propio Node.js que se mantiene durante muchos años.
Espero que esto ayude.
donde pondrías tus js, css, imágenes del lado del cliente? Qué sugeriría una estructura de carpetas similar en la carpeta pública, como: públicas/activos /activos/css pública /assets/images públicas /activo/docs públicas públicas/libs apoyo público/ pública/ pruebas públicas/modelos/ públicos vistas públicas/controladores ? – ezmilhouse
expressjs crea un directorio ./routes, ¿es lo mismo que ./controllers en su ejemplo? – chovy
¿Por qué no creas un generador Yeoman con esa propuesta? Podría convertirse en un estándar. –