- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,请原谅我的问题逻辑,因为我是新来的。我正在使用 React 和 Node 构建我的第一个全栈应用程序。我正在考虑三种方法,但不确定哪种方法最有效。
方法一
当用户在前端填写表单并请求通过地理定位 API 访问其地理位置时,我希望能够获取用户的纬度/经度。例如,当用户提交他们的地区和社区名称时,后端将调用 getCurrentPosition 地理定位 API。然后返回的纬度/经度将构成要发送到数据库的数据的一部分,如下面提取的代码所示。但是当我尝试这种方法时,我遇到了两个挑战。首先,错误消息是 navigator is not defined
。其次,我不知道如何检索返回的纬度/经度并将其声明为常量以在创建位置时使用它。请看下面的代码:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
} else {
alert("Your browser is out of fashion. There is no geo location!")
}
function success(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude
console.log(`Your latitude is ${latitude} and your longitude is ${longitude}`)
return (latitude, longitude);
}
function error() {
alert("Can't detect your location. Try again later.")
}
如何在函数外将纬度/经度声明为常量。有些喜欢:
const communityName = req.body.communityName;
const latitude = (success).latitude;
const longitude = (success).longitude;
方法 2
我下载了 geolocation npm 包并在下面的代码中使用它,但收到未定义导航器的错误。如果我要使用这种方法,我该如何定义导航器以及如何在函数外部将纬度/经度声明为常量?
const geolocation = require('geolocation');
geolocation.getCurrentPosition(function (err, position) {
if (err) throw err
console.log(position)
})
方法 3
我阅读了有关此方法的信息,但无法获得有效示例。建议我应该使用地理定位 API 来获取用户设备的纬度/经度,并将坐标作为 req.body 数据的一部分发送到后端 API。如果这是一个好方法,是否有我可以遵循的教程?
拜托,我是 Javascript 和编码的新手,但我已经取得了很大的进步,但这让我对我的项目有所了解。没有回答是lease太错了。废话中有道理。
最佳答案
navigator.geolocation
这是浏览器提供的API。它不适用于 Node.js。
I downloaded the geolocation npm package
这包装了 navigator.geolocation
。它专为使用 Node 模块和编译步骤(例如 Webpack 提供的)编写客户端代码而设计。它不适用于 Node.js。
It is suggested that I should use the geolocation API to get the user device lat/long and send the coords as part of req.body data to the backend API.
MDN和 Google两者都介绍了用于从客户端 JavaScript 发出 HTTP 请求的 fetch
API。
还有一些React-specific information在 React 常见问题解答中。
然后您可以使用 req.body
在不同的端点读取数据如果您已经配置了合适的正文解析中间件。
关于javascript - 如何在我的 node.js 中使用地理定位来获取用户设备的纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61696252/
我是一名优秀的程序员,十分优秀!