Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务人员与NextJS&;快车_Javascript_Node.js_Reactjs_Service Worker_Nextjs - Fatal编程技术网

Javascript 服务人员与NextJS&;快车

Javascript 服务人员与NextJS&;快车,javascript,node.js,reactjs,service-worker,nextjs,Javascript,Node.js,Reactjs,Service Worker,Nextjs,在过去的两天里,我一直在尝试让一个服务工作者在运行Express作为服务器的NextJS应用程序上运行。我托管所有代码的回购协议是 我只是想知道我错在哪里。我使用Express的原因是发送邮件,所有使用next offline或任何其他服务器配置的示例都使用http插件 我已经在这个投资组合上工作了大约2个月了,我真的很想在我决定推广它之前提高我的灯塔分数。任何方向都是很有价值的。谢谢大家! 我没有足够的代表留下评论,但是 您链接到的repl.it链接是本机浏览器Javascript repls

在过去的两天里,我一直在尝试让一个服务工作者在运行Express作为服务器的NextJS应用程序上运行。我托管所有代码的回购协议是 我只是想知道我错在哪里。我使用Express的原因是发送邮件,所有使用next offline或任何其他服务器配置的示例都使用http插件


我已经在这个投资组合上工作了大约2个月了,我真的很想在我决定推广它之前提高我的灯塔分数。任何方向都是很有价值的。谢谢大家!

我没有足够的代表留下评论,但是


您链接到的repl.it链接是本机浏览器Javascript repls,它不运行node,扩展为express。您需要使用或,如果您愿意,使用我们的。

最终解决了这个问题,放弃了Express,只需通过节点处理电子邮件的响应正文:

const { headers, method, url } = req;
let body = [];
req.on('error', (err) => {
  console.error(err);
}).on('data', (chunk) => {
  body.push(chunk);
}).on('end', () => {
  body = Buffer.concat(body).toString();
})

然后使用我已经使用过的nodemailer sendTransport函数。服务人员正在运行,邮件也正在发送=因此,本周我还试图建立一个“灯塔验证”项目

接下来有一个非常好的。我遵循的一个特别的例子是

它的设置与您的类似,仅使用带有标准设置的

似乎缺少的一步可能是问题所在,那就是您没有注册您的服务人员。 在索引文件中,您可以在componentDidMount生命周期中注册服务工作者

import React from 'react'

export default class extends React.PureComponent {
  componentDidMount() {
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker
        .register('/service-worker.js')
        .then(registration => {
          console.log('service worker registration successful')
        })
        .catch(err => {
          console.warn('service worker registration failed', err.message)
        })
    }
  }
  render() {
    return <p>Check the console for the Service Worker registration status.</p>
  }
}
从“React”导入React
导出默认类扩展React.PureComponent{
componentDidMount(){
if(导航器中的“serviceWorker”){
navigator.serviceWorker
.register('/service worker.js')
。然后(注册=>{
console.log('服务人员注册成功')
})
.catch(错误=>{
console.warn('服务工作者注册失败',错误消息)
})
}
}
render(){
return检查控制台中的服务人员注册状态

} }
我的配置与您的相同,对我来说效果很好。你能详细说明你面临的问题吗?可能会在这里显示错误?因此,如果我使用http而不是Express创建服务器,那么服务工作者将工作。这是一份回购协议,上面有我用来让它工作的代码。但是,如果我尝试将Express添加回以使邮件系统正常工作,服务人员就会失败。不,我没有!谢谢你的链接。有什么建议从哪里开始吗?当服务人员出现故障时,控制台中是否有错误?这就是我在尝试使用Express运行服务人员时遇到的错误。我只是在那里发布代码,以便尝试显示我在做什么。除息的