Я передаю данные MongoDB в мой файл EJS.Я могу получить доступ к данным с помощью тегов <% %>
в моем HTML.Проблема, с которой я сталкиваюсь, заключается в том, что мне нужен доступ к данным внутри моего тега <script>
, а теги <% %>
больше не работают.
Вещи, которые я пробовал:
Добавление данных к скрытому вводу и доступ к ним с помощью document.getElementById().value
Я пытался исследовать любые примеры использования данных монго втег сценария, но большинство ответов связано с <% %>
в HTML / EJS
locationSchema
const locationSchema = new Schema({
lat: String,
lng: String,
title: String
});
app.js
app.get('/', function(req,res){
Locations.find({}, (err, results) => {
if (err) {
return res.render.status(500).send('<h1>ERROR</h1>');
} else{
console.log(results)
res.render('homePage',{results, Locations, req});
}
});
});
ejs
<!-- ejs_views/homePage.ejs -->
<!doctype html>
<html lang = "en">
<!-- displays head.ejs-->
<head>
<% include head %>
<style>
#map{
height:400px;
width: 100%;
}
</style>
</head>
<!-- displays header.ejs-->
<body class = "container">
<header>
<% include header %>
</header>
<!-- Edit the body of the front end here-->
<main>
<div class = "jumbotron">
<h1>This is great</h1>
<p>Testing out EJS</p>
</div>
<div id = "map"></div>
<% for (const location of results) { %>
<h1> <%= location.title %></h1>
<h1> <%= location.lat %></h1>
<h1> <%= location.lng %></h1>
<% } %>
<script>
function initMap(){
//SYNTAX ERROR HERE ON <% AND %>
const locationResults = <% JSON.stringify(results) %>;
//Map Options to dictate zoom and position
var options = {
zoom: 16,
center: {lat:35.6543936, lng: -97.4714266}
}
//init map for view
var map = new google.maps.Map(document.getElementById('map'), options);
/*var marker = new google.maps.Marker({
position:{lat: 35.654243, lng: -97.472937 },
map: map,
title: 'Math And Computer Science'
});*/
//addMarker({coords:{lat:35.6543936, lng: -97.4714266}, title: "TestCase"});
//iterateFunc();
results.forEach(location => addMarker({coords: {lat: location.lat,lng: location.lng}, title: location.title}))
//Add Marker Function
function addMarker(props){
var marker = new google.maps.Marker({
position: props.coords,
map:map,
title: props.title
})
}
}
</script>
</main>
<!-- displays footer.ejs-->
<footer>
<% include footer %>
</footer>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAftGHvJnejXQm5k1jiLiBRsRwm5SXqzm8&callback=initMap">
</script>
</body>
</html>
Ожидаемые результаты:
может циклически проходить монгодаты в моем скрипте и использовать их в функции addMarker
Фактические результаты:: [