语法错误:意外的标记;编译ejs时

Ale*_*dro 2 ejs node.js express

我正在尝试在我的 Express 应用程序中使用此谷歌地图代码,但它给了我一个语法错误。我已经过滤了这个函数的错误:

  <% var map; %>
  <% function initMap() { %>
  <%  map = new google.maps.Map(document.getElementById('map'), { %>
  <%    center: {lat: -34.397, lng: 150.644}, %>
  <%    zoom: 8 %>
  <%  }); %>
  <% }; %>
Run Code Online (Sandbox Code Playgroud)

错误消息并没有多大帮助:

SyntaxError: Unexpected token ; in C:\proyectos\google-location-api\views\resultados.ejs while compiling ejs

If the above error is not helpful, you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
    at Object.compile (C:\proyectos\google-location-api\node_modules\ejs\lib\ejs.js:524:12)
    at Object.compile (C:\proyectos\google-location-api\node_modules\ejs\lib\ejs.js:338:16)
    at handleCache (C:\proyectos\google-location-api\node_modules\ejs\lib\ejs.js:181:18)
    at tryHandleCache (C:\proyectos\google-location-api\node_modules\ejs\lib\ejs.js:203:14)
    at View.exports.renderFile [as engine] (C:\proyectos\google-location-api\node_modules\ejs\lib\ejs.js:412:10)
    at View.render (C:\proyectos\google-location-api\node_modules\express\lib\view.js:128:8)
    at tryRender (C:\proyectos\google-location-api\node_modules\express\lib\application.js:640:10)
    at EventEmitter.render (C:\proyectos\google-location-api\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\proyectos\google-location-api\node_modules\express\lib\response.js:971:7)
    at Request._callback (C:\proyectos\google-location-api\app.js:20:11)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Bri*_*utt 5

我猜这是因为你在每一行都有<%and%>并建议使其更干净,以便正确解析它

<%
    var map;

    function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
            center: {
                lat: -34.397,
                lng: 150.644
            },
            zoom: 8
        });
    };
%>
Run Code Online (Sandbox Code Playgroud)