将参数从Node.JS传递到HTML文件

时间:2019-05-16 11:34:03

标签: javascript html node.js express

我正在从Node中的API解析一个数组,然后将其处理到我的HTML文件中,以便可以在地图上绘制从API接收到的一些点。我想将数组作为参数传递,以便HTML接收它。我在这里浏览了所有其他可能的答案,但没有一个起作用。

const express = require('express') const util = require('util') var request = require("request") var path = require('path') const app = express() app.get('/_bicis', (req, res) => { var url = "https://nextbike.net/maps/nextbike-official.json?city=532" request({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode === 200) { data = body['countries'][0]['cities'][0]['places'] res.sendFile(path.join(__dirname + '/index.html'), {data: data}); } }) }) module.exports = app

index.html

<html><head> </head> <body> <script> // When printing this line it raises an error console.log("RECEIVED FROM HTML" + data) </script> </body></html> 文件

Probability Amended = 
CALCULATE( MAX(TableName[Probability]), ALLEXCEPT(TableName, TableName[Opportunity Key]))

我没有使用任何模板来生成HTML文件,对吗?可以用我拥有的代码完成吗?

1 个答案:

答案 0 :(得分:1)

这将不起作用,因为data仅在您的Node.js环境中可用,而在您的浏览器中不可用。在这种情况下,express仅用于提供静态HTML文件index.html。在您的浏览器环境中,数据不再可用。

有两种方法可以将数据传递到浏览器:

  1. 使用模板在服务器端生成HTML代码。
  2. 将API请求移至其他路由,例如app.get('/_bicis/api', ...),并使用前端框架对新路由进行AJAX调用。这将从您的浏览器中请求数据,您可以使用前端JavaScript来构建HTML。