Как получить данные о геолокации и отправить их из браузера на сервер express - PullRequest
1 голос
/ 12 июля 2020

Я хочу получить широту и долготу местоположения. Я использую файлы e js. Я нашел этот код на w3shools, но я не знаю, как включить его в файл e js и вернуть данные обратно на сервер. В бэкэнде я использую express. Не могли бы вы помочь? Заранее спасибо.

var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude;
}
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

, если вы хотите выполнить свой код из e js, вам нужно поместить его в тег <script> в .e js файл

<script>
var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude;
}
</script>

или сохранить весь свой JS код для разделения страницы и ссылки внизу в e js

yourFile. js:

(function() {
    var x = document.findElementById('demo');
    ...
)}();

Затем на вашем e js template: // внизу страницы

<script src="yourFile.js" type="text/javascript"></script>
0 голосов
/ 12 июля 2020

В вашем основном файле nodeJS вам необходимо создать маршрут для получения данных геолокации:

const express = require("express");
const { json } = require("body-parser")
const app = express();
app.use(json())
//you probably have the lines above in your code

app.get("/geolocation/:latitude/:longitude", (req, res) => {
    const latitude = req.params.latitude;
    const longitude = req.params.longitude;
    res.status(200).json({"Message": "Coordinates received"})
    //now that you have these in variables on your server, you can process them or store them in your database as you please
})

На стороне внешнего интерфейса, в вашей функции showPosition, вы должны включить запрос на выборку, который будет чтобы отправить широту и долготу на ваш сервер. Чтобы узнать больше о выборке, нажмите здесь

Надеюсь, я правильно понял вопрос, и это будет полезно

...