Arquitectura de aplicaciones basada en mangosta

Esta no es una pregunta concreta de aplicación / código, solo se trata de una arquitectura de aplicación común.

Estoy tratando de entender la forma correcta de organizar mi aplicación de mangosta. Como soy nuevo en la mangosta, así es como lo hago ahora:

core / settings.js

var mongoose = require('mongoose');
exports.mongoose = mongoose;
mongoose.connect('mongodb://localhost/blog');
exports.db = mongoose.connection;

core / models.js

settings = require("./settings");

// post schema
var postSchema = settings.mongoose.Schema({
    header: String,
    author: String,
    text: String
})

//compiling our schema into a Model 
exports.post = settings.mongoose.model('post', postSchema)

core / db-layer.js

settings = require("./core/settings");
models = require("./core/models");

exports.function = createAndWriteNewPost(function(callback) {
    settings.db.on('error', console.error.bind(console, 'connection error:'));
    settings.db.once('open', function callback() {
        new models.post({
            header: 'header',
            author: "author",
            text: "Hello"
        }).save(function(err, post) {
            callback('ok');
        });
    });
});

rutas / post.js

db = reqiure("../core/db.js")

exports.get = function(req, res) {
    db.createAndWriteNewPost(function(status){
    res.render('add_material', {
      //blah blah blah        
        });
    });
};

app.js

var post = require ('routes/post.js')
...
app.get('/post', post.get);

Entonces, este código fue extremadamente simplificado (incluso no probado) solo para mostrar mis pensamientos actuales de arquitectura. No es una aplicación concreta, solo algo como crear una publicación de blog abstracta. Así es como funciona:

app.js --> routes/post.js <--> core/db-layer.js
                                   |
                                   v
                               core/models.js <--> core/settings.js

Me parece un poco superfluo. ¿Podría sugerir una estructura de aplicación más óptima? Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta