Qual é a diferença entre definir uma propriedade em app.locals e chamar app.set ()?

Eu estou no processo de aprender Express - e pensando no melhor lugar para salvar dados de estilo de configuração. As opções disponíveis estão em app.locals ou app.set (settings) ... então:

app.locals({ config: {
    name: 'My App',
    domain: 'myapp.com',
    viewPath: __dirname+'/views',
    viewEngine: 'jade'
    port: 3000
} });

app.set('view engine', app.locals.config.viewEngine || 'jade');

Isso também me permitiria usar o seguinte em meus pontos de vista:

<title>#{config.name}</title> // <title>My App</title>

Ou a alternativa é usar app.set da seguinte forma:

app.set('name', 'My App');
app.set('domain', 'myapp.com');

... e, em seguida, use isso na exibição:

<title>#{settings.name}</title>

Eu sei que ambos os métodos funcionam, mas estou lutando para determinar qual é o melhor método para usar. No momento, estou inclinado a usar app.locals, com o namespace extra 'app', pois acredito que haveria menos chance de conflitos com futuras atualizações e outros módulos se usar app.set.

questionAnswers(4)

yourAnswerToTheQuestion