Eu descobri isso (obrigado Timothy!). O problema era minha compreensão de todas essas tecnologias e como elas se encaixavam. Para qualquer pessoa interessada em exibir imagens do MongoDB GridFS usando Node, Express e Jade ...
Meu documento no MongoDB tem uma referência à imagem armazenada no GridFS que é um ObjectId armazenado como uma string. por exemplo. MyEntity {ImageId:'4f6d39ab519b481eb4a5cf52'} <-- NB:Representação de string de ObjectId. A razão pela qual eu armazenei como uma string foi porque armazenar o ObjectId estava me dando uma dor no roteamento, pois estava renderizando como binário e eu não conseguia descobrir como consertar isso. (Talvez alguém possa ajudar aqui?). De qualquer forma, a solução que tenho está abaixo:
Repositório de Arquivos - Recupere a imagem do GridFS, passo um String Id, que depois converto para um BSON ObjectId (você também pode obter o arquivo pelo nome do arquivo):
FileRepository.prototype.getFile = function(callback,id) {
var gs = new GridStore(this.db,new ObjectID(id), 'r');
gs.open(function(err,gs){
gs.read(callback);
});
};
Modelo Jade - Renderize a marcação HTML:
img(src='/data/#{myentity.ImageId}')
Arquivo App.JS - Roteamento (usando Express) configuro a rota '/data/:imgtag' para imagens dinâmicas:
app.get('/data/:imgtag', function(req, res) {
fileRepository.getFile( function(error,data) {
res.writeHead('200', {'Content-Type': 'image/png'});
res.end(data,'binary');
}, req.params.imgtag );
});
E isso fez o trabalho. Qualquer dúvida me avise :)