我正在从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文件,对吗?可以用我拥有的代码完成吗?
答案 0 :(得分:1)
这将不起作用,因为data
仅在您的Node.js环境中可用,而在您的浏览器中不可用。在这种情况下,express仅用于提供静态HTML文件index.html
。在您的浏览器环境中,数据不再可用。
有两种方法可以将数据传递到浏览器:
app.get('/_bicis/api', ...)
,并使用前端框架对新路由进行AJAX调用。这将从您的浏览器中请求数据,您可以使用前端JavaScript来构建HTML。