¿Cómo puedo agregar marcadores a Google Maps usando Node.js / Express / MongoDB?

Decidí esta semana que me gustaría aprender Node.js (no soy un progtwigdor). Me he estado divirtiendo mucho con eso hasta ahora, pero estoy atascado en este momento.

He creado una aplicación básica utilizando Express. Digamos que tengo una ruta / ubicaciones. Configuré mi solicitud de obtención para representar la vista relacionada y encontrar (utilizando el método .find de Mongoose) todos los documentos en mi modelo de ubicación. Sé que puedo pasar los documentos a la vista de esta manera:

app.get('/locations', function(req, res) { Location.find({}, function(err, docs) { res.render('locations/index', { title: 'Locations', user: req.user, docs: docs }); }); }); 

Entonces, por ejemplo, puedo acceder a los resultados en la vista (Jade) y hacer una lista de ellos haciendo algo como:

 if(docs.length) each location in docs p #{location.name} is at #{location.coordinates} 

Quiero agregar todas estas ubicaciones (utilizando las coordenadas almacenadas con cada ‘ubicación’) a un mapa de Google. Tengo un mapa de ejemplo que se muestra en la vista con el siguiente script en la cabecera, tomado de la documentación de la API de Google Maps.

 function initialize() { var myLatlng = new google.maps.LatLng(-25.363882,131.044922); var mapOptions = { zoom: 4, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP, } var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); var marker = new google.maps.Marker({ position: myLatlng, title: "Hello World!" }); marker.setMap(map); } google.maps.event.addDomListener(window, 'load', initialize); 

Calculé dónde se crea la variable del marcador y luego establece que podría recorrer mis ‘documentos’ y crear y establecer un marcador para cada ubicación almacenada en mi base de datos. Dicho esto, soy demasiado nuevo para esto y parece que no puedo entender cómo hacerlo, ya que el script en la cabeza no puede acceder a los “documentos” que he pasado a la vista.

¿Algún consejo? Gracias de antemano, es muy apreciado.

JSON.stringify() cualquier objeto que mis scripts de cliente necesiten e insértelo como data-whatever HTML5 data-whatever atributos.

Por ejemplo:

 //app.js app.get('/map', function(req, res){ var data = { id: '1234', LL: { lat: 42.1, lng: 80.8, }; res.locals.docsJSON = JSON.stringify([data]); res.render('locations/index'); }); //jade !!! html body(data-locations=locals.docsJSON) script var docs = JSON.parse($('body').attr('data-locations')); console.log(docs[0].LL);