我正在按照课程中解释的方式执行所有操作,并键入完全相同的代码。我坚持的课程是使用 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>
问题在于将对象传递给模板。
在将变量传递给模板时尝试从变量中删除引号:
const campground = <%- JSON.stringify(campground) %>;
我也面临着同样的问题,请你帮助我,我也是新手,不明白这一点。请帮助我理解