Cols Steele Yelp Camp项目:集群地图无法显示露营地求助
修复Yelp Camp集群地图显示问题
错误1:Uncaught SyntaxError: Unexpected token '&'
这个问题是因为JSON.stringify(campgrounds)的输出被HTML自动转义了(比如双引号变成了"),导致JS无法正确解析JSON。解决方法是使用EJS的不转义输出语法:
把模板中的<%= %>替换成<%- %>,直接输出原始JSON内容:
<script> const mapToken = '<%=process.env.MAPBOX_TOKEN%>'; const campgrounds = { features: <%- JSON.stringify(campgrounds) %>}; </script>
错误2:Uncaught ReferenceError: mapToken is not defined
从两个方向排查修复:
- 环境变量未正确加载:确认项目根目录存在
.env文件,且文件内正确配置了MAPBOX_TOKEN=你的Mapbox密钥;同时在服务器入口文件(如app.js)顶部添加环境变量加载代码:
require('dotenv').config();
- 模板输出语法问题:检查
process.env.MAPBOX_TOKEN的输出是否正常,确保EJS的<%= %>语法正确渲染了变量,没有拼写错误。如果密钥包含特殊字符,单引号包裹的写法是安全的,无需额外转义。
额外注意事项
确保clusterMap.js的加载顺序在上述<script>代码之后,否则会因提前执行导致变量未定义。如果无法调整加载顺序,可以在clusterMap.js中用DOM加载事件包裹代码:
document.addEventListener('DOMContentLoaded', () => { // 原clusterMap.js中的地图初始化代码 });
内容的提问来源于stack exchange,提问作者Kirill
相关产品推荐
相关产品推荐

