我遇到 ReferenceError:未定义导航器在node.js上运行以下代码:
navigator.geolocation.getCurrentPosition((data) => {
console.log(data);
});
我认为问题是 Navigator.geolocation 是Web API,并且无法在节点上运行。有没有一种方法可以模拟浏览器并在node.js上使用它?
非常感谢
答案 0 :(得分:0)
是否可以模拟浏览器并在node.js上使用它?
browser-env
是可用于模拟Web API的一个库。
import browserEnv from 'browser-env';
然后:
browserEnv(['navigator']);
但是,这会污染全局名称空间,因此请谨慎使用。
答案 1 :(得分:0)
我之所以创建它是因为分析不支持节点,所以它需要条件导入
import isNode from 'detect-node'
export async function analyticsLogEvents(event, params) {
if (!isNode) {
const firebase = await import('firebase/app')
await import('firebase/analytics')
firebase.default.analytics().logEvent(event, params)
}
}
答案 2 :(得分:-1)
Node.js是服务器端技术,这意味着它无法直接访问用户的地理位置。
您应该问的是如何在客户端使用javascript获取地理位置,然后只需通过Ajax将信息发送到服务器。
更多信息在这里:http://www.w3schools.com/html/html5_geolocation.asp。
当然有一些库可以简化此操作。