【问题标题】:Loading third party scripts such src="http://js.api.here.com/v3/3.0/mapsjs-service.js" into Nodejs application将 src="http://js.api.here.com/v3/3.0/mapsjs-service.js" 等第三方脚本加载到 Nodejs 应用程序中
【发布时间】:2018-11-22 13:50:12
【问题描述】:

我正在尝试将 Here 地图集成到我的 Nodejs 网站中。我想要做的是在我的 app.js 文件中创建一个如下所示的地图对象。

var map = new H.Map(
          document.getElementById('mapContainer'),
          maptypes.normal.map,
          {
              zoom: 10,
              center: { lng: 13.4, lat: 52.51 }
          });

然后我想把这个地图对象传给我的ejs文件来显示。但我无法弄清楚如何将以下脚本加载到我的应用程序中。这些文件是Here maps提供的脚本,创建地图对象需要加载。

<meta name="viewport" content="initial-scale=1.0, width=device-width" />
<script src="http://js.api.here.com/v3/3.0/mapsjs-core.js"
             type="text/javascript" charset="utf-8"></script>
<script src="http://js.api.here.com/v3/3.0/mapsjs-service.js"
             type="text/javascript" charset="utf-8"></script>

如果我尝试将这些文件加载​​到我的 ejs 文件中,我会收到一条错误消息,指出 H 未定义。有人可以告诉我如何在我的应用程序中加载这些脚本,以便我可以访问新的 H.map(...)。以及如何使这些变量在我的 ejs 文件中可用

长话短说,我想将以下代码添加到我的 nodejs 应用程序中,将 js 文件中的脚本标记内的代码和 HTML 部分中的代码分离到 EJS 文件中

<html>
  <head>
  <meta name="viewport" content="initial-scale=1.0, width=device-width" />
  <script src="http://js.api.here.com/v3/3.0/mapsjs-core.js"
  type="text/javascript" charset="utf-8"></script>
  <script src="http://js.api.here.com/v3/3.0/mapsjs-service.js"
  type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
  <div style="width: 640px; height: 480px" id="mapContainer"></div>
  <script>
    // Initialize the platform object:
    var platform = new H.service.Platform({
    'app_id': '{YOUR_APP_ID}',
    'app_code': '{YOUR_APP_CODE}'
    });

    // Obtain the default map types from the platform object
    var maptypes = platform.createDefaultLayers();

    // Instantiate (and display) a map object:
    var map = new H.Map(
    document.getElementById('mapContainer'),
    maptypes.normal.map,
    {
      zoom: 10,
      center: { lng: 13.4, lat: 52.51 }
    });
  </script>
  </body>
</html>

【问题讨论】:

    标签: javascript jquery node.js here-api here-maps-rest


    【解决方案1】:

    由于您使用的是 EJS,您可能需要检查一下: How to include external .js file to ejs Node template page

    简而言之,EJS 中的脚本在页面发送到客户端之前运行在服务器端。

    要使用第三方脚本,请尝试将它们安装在您的服务器端。

    npm i here-js-api
    

    然后将它们加载到您的脚本中: Adding local script files to EJS views

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2020-07-20
      • 2013-08-13
      相关资源
      最近更新 更多