在反应中注册服务人员
Posted
技术标签:
【中文标题】在反应中注册服务人员【英文标题】:registering a service worker in react 【发布时间】:2019-08-22 02:26:07 【问题描述】:我们的服务器设置如下,使用react、graphql、mongo和express:
public
index.html
service.js
src
assets
client (has 2 client side js files)
components (for react)
game.jsx
server (graphql server)
server.js
我需要注册一个 Service Worker,以便我可以向玩家发送推送通知;调用来自 game.jsx(当我希望注册 serviceWorker 时加载的那个):
const swreg = await navigator.serviceworker.register('service.js');
这会导致对ourURL.com/service.js 的get 请求(因此我将service.js 置于public 之下,因为它是在其中提供服务的)
这很好,花花公子,但是我在 service.js 中不断收到导入错误:
Uncaught SyntaxError: Unexpected token
这是 service.js 中的违规代码:
import saveSubscription from "src/queries/queries";
其中 saveSubscription 是一个 graphql 突变调用,在 src/queries/queries.js 中定义。
我尝试过其他形式的导入,但它们给了我某种语法错误。谷歌搜索告诉我,我需要一个 type="module" 标记,这显然不适用于这种情况。 我怎么解决这个问题?谢谢!
【问题讨论】:
【参考方案1】:我修好了……有点。
我删除了导入行,而是在函数中使用了 fetch。
fetch(url,
method: "POST", // get can't have body
'Content-Type': 'application/graphql',
body: JSON.stringify(graphQLQuery)
);
【讨论】:
以上是关于在反应中注册服务人员的主要内容,如果未能解决你的问题,请参考以下文章