Olá, na aula 5 do curso "Node.js: Inovando com Javascript no backend", a atividade pede para implementarmos o res.format().
Eu fiz da seguinte maneira:
app.post('/produtos', function(req, res){
    var produto = req.body;
    req.assert('titulo', 'Título é obrigatório').notEmpty();
    req.assert('preco', 'Formato inválido').isFloat();
    var erros = req.validationErrors();
    if(erros){
      res.format({
        html: function(){
          res.render('produtos/lista', {errosValidacao: erros, produto: produto})
        },
        json: function(){
          res.status(400).json(erros);
        }
      });
      return;
    }
    var connection = app.infra.connectionFactory();
    var ProdutosDAO = new app.infra.ProdutosDAO(connection);
    ProdutosDAO.salva(produto, function(err, resultados){
      if(err) {
        res.redirect('/produtos');
      }
      res.format({
        html: function(){
          res.send(produto);
        },
        json: function(){
          res.json(produto);
        }
      });
    });
  });
Pra gerar as requisições no formato JSON, eu uso o app POSTMAN.  Quando eu removo o return da primeira sentença if, se forem enviadas mais de duas requisições POST seguidas com os campos titulo e preco inválidos, eu ainda consigo cadastrar, mesmo com campos inválidos. Se eu deixo o return no primeiro if, isso não acontece. Não consegui entender o motivo. Alguém ajuda?