我正在尝试通过 NodeJs 可视化 map 上的点。这是我的 index.js 文件:
var express = require('express');
var fs = require('fs');
var getdata = require('./database.js');
var app = express();
app.get('/', function (req, res, next) {
res.writeHead(200,{'Content-Type':'text/html'});
var myReadStream = fs.createReadStream(__dirname + '/index.html','utf8')
myReadStream.pipe(res);
//var value = getdata.deneme();
//console.log("Value: "+value);
});
app.listen(4000, function () {
console.log('Server is running.. on Port 4000');
});
我可以通过HTML文件调用 map 。 Index.html 文件在这里:
<html><body>
<div id="mapdiv"></div>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>
map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());
var lonLat = new OpenLayers.LonLat(32 ,39 )
.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
var zoom=16;
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(lonLat));
map.setCenter (lonLat, zoom);
</script>
</body></html>
最后一步是连接到数据库。我创建了一个database.js 文件:
const{Pool,Client} = require('pg');
var connectionString = "postgressql://ID:password@ec2-54-228-243-29.eu-west-1.compute.amazonaws.com:5432/dduigib0uc8ebt?ssl=true";
const pool = new Pool({
connectionString: connectionString,
});
module.exports = {
deneme: function() {
pool.query('SELECT st_astext(loc) from GetAllData()', (err, res) => {
console.log(err, res)
return res
pool.end()
});
}
};
我可以连接到数据库并获取点的位置。但我不知道如何将这些点发送到我的 HTML 文件以可视化 map 上的点。在 HTML 页面中包含用于可视化的样本点。我只想在那里输入我的观点。 我怎样才能做到这一点 ?
最佳答案
您的后端应包含数据库连接和端点。您需要从前端调用这些端点。 前端部分应包含 HTML 页面和请求。您可以使用Xml Http Request 处理请求。
关于javascript - 如何在 Node JS 中向 html 页面发送响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58993591/