node.js - ReferenceError:导航器未定义

13 javascript geolocation node.js

我收到ReferenceError: navigator is not Defined在 node.js 上运行以下代码:

navigator.geolocation.getCurrentPosition((data) => {
  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

我认为问题在于Navigator.geolocation是一个 Web API,在节点上不起作用。有没有办法模拟浏览器并在node.js上使用它?

非常感谢

Der*_*son 5

有没有办法模拟浏览器并在node.js上使用它?

一个可用于模拟 Web API 的库是browser-env.

import browserEnv from 'browser-env';
Run Code Online (Sandbox Code Playgroud)

然后:

browserEnv(['navigator']);
Run Code Online (Sandbox Code Playgroud)

不过,这会污染全局名称空间,因此在使用时要小心。


小智 1

Node.js 是一种服务器端技术,这意味着它无法直接访问用户的地理位置。

您应该问的是如何在客户端使用 javascript 获取地理位置,然后通过 Ajax 将该信息发送到您的服务器。

更多信息请访问:http://www.w3schools.com/html/html5_geolocation.asp

当然有一些库可以简化它的使用。