无法在 ejs 模板中运行 Mapbox

问题描述 投票:0回答:2

我正在按照课程中解释的方式执行所有操作,并键入完全相同的代码。我坚持的课程是使用 Mapbox 包来显示特定露营地的位置。于是就有了一个show.ejs文件,里面有几行代码:

 <script>
        const mapToken = '<%=process.env.MAPBOX_TOKEN%>';
        const campground = '<%- JSON.stringify(campground) %>';
    </script>

另一个文件 showPageMap.js,包含几行代码:

mapboxgl.accessToken = mapToken;
const map = new mapboxgl.Map({
    container: 'map', // container ID
    style: 'mapbox://styles/mapbox/streets-v12', // style URL
    center: campground.geometry.coordinates, // starting position [lng, lat]
    zoom: 8, // starting zoom
});

 new mapboxgl.Marker()
     .setLngLat(campground.geometry.coordinates)
     .addTo(map)

所有这些都是我按照 Colt 的视频输入的,他的一切都可以,但我收到了这个错误:

未捕获类型错误:无法读取未定义的属性(正在读取 '坐标') 在 showPageMap.js:5:33

请帮助别人!

尝试谷歌,我该如何解决它,但没有任何结果!

编辑:

这是它在前端的样子:

<script>
const mapToken = 'TOKEN';
const campground = '{"geometry":{"type":"Point","coordinates":[8.520355,47.476804]},"_id":"648c26c9e3f99b64ff16c197","title":"Oberglatt Camp","price":100,"description":"Gut gut gut","location":"Oberglatt, Switzerland","reviews":[],"images":[],"author":{"_id":"64835051f0aef1d3a60306ef","email":"[email protected]","username":"tim","__v":0},"__v":0}';
</script>
javascript node.js ejs
2个回答
0
投票

问题在于将对象传递给模板。

在将变量传递给模板时尝试从变量中删除引号:

const campground = <%- JSON.stringify(campground) %>;

0
投票

我也面临着同样的问题,请你帮助我,我也是新手,不明白这一点。请帮助我理解

© www.soinside.com 2019 - 2024. All rights reserved.