Acessando Variáveis ​​Locais Express.js no JavaScript do lado do cliente

Curioso se eu estou fazendo isso certo e se não como vocês se aproximariam disso.

Eu tenho um modelo de Jade que precisa renderizar alguns dados recuperados de um banco de dados MongoDB e também preciso ter acesso a esses dados dentro de um arquivo JavaScript do lado do cliente.

Estou usando o Express.js e enviando os dados para o modelo Jade da seguinte forma:

var myMongoDbObject = {name : 'stephen'};
res.render('home', { locals: { data : myMongoDbObject } });

Então dentro dehome.jade Eu posso fazer coisas como:

p Hello #{data.name}!

Que escreve:

Hello stephen!

Agora o que eu quero é também ter acesso a este objeto de dados dentro de um arquivo JS do lado do cliente para que eu possa manipular o objeto em dizer um botão clique antes de enviá-lo de volta para o servidor para atualizar o banco de dados.

Consegui fazer isso salvando o objeto "data" dentro de um campo de entrada oculto no modelo Jade e, em seguida, buscando o valor desse campo dentro do arquivo JS do lado do cliente.

Dentro de casa.

- local_data = JSON.stringify(data) // data coming in from Express.js
input(type='hidden', value=local_data)#myLocalDataObj

Em seguida, no meu arquivo JS do lado do cliente, posso acessar local_data da seguinte forma:

Inside myLocalFile.js

var localObj = JSON.parse($("#myLocalDataObj").val());
console.log(localObj.name);

No entanto, esse negócio de simplificação / análise parece confuso. Eu sei que posso ligar os valores do meu objeto de dados para objetos DOM no meu modelo de Jade e, em seguida, buscar esses valores usando jQuery, mas gostaria de ter acesso ao objeto real que está voltando do Express no meu lado do cliente JS.

A minha solução é ótima? Como vocês realizariam isso?

questionAnswers(5)

yourAnswerToTheQuestion