首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对使用NextJS和Express的服务人员感到困惑

对使用NextJS和Express的服务人员感到困惑
EN

Stack Overflow用户
提问于 2018-06-08 09:19:45
回答 3查看 1.5K关注 0票数 1

在过去的两天里,我一直在尝试让一个服务工作者在我的NextJS应用程序上运行,该应用程序将Express作为服务器运行。我托管所有代码的代码库是https://github.com/nicer00ster/nicer00ster-portfolio,我只是在寻找我哪里出错的提示。我使用Express的原因是发送邮件,所有使用next-offline或任何其他服务器配置的示例都使用http插件。

我已经在这个项目上工作了大约两个月了,我真的很想在我决定把它推向现实之前,得到我的灯塔分数。任何方向都有很大的价值。谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-06-09 04:03:40

最终弄清楚了这一点,最终放弃了Express,只通过Node处理电子邮件的响应正文:

代码语言:javascript
复制
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函数。Service worker正在运行,邮件也在发送!=D

票数 1
EN

Stack Overflow用户

发布于 2018-06-09 03:30:14

我没有足够的代表来发表评论,但是...

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

票数 0
EN

Stack Overflow用户

发布于 2018-06-21 19:43:19

所以这周我也在尝试建立一个“灯塔验证”的项目。

接下来,有一个非常好的directory of examples。我遵循的帮助我设置此功能的特定示例是next.js/examples/with-sw-precache

它的设置与使用标准设置的SWPrecacheWebpackPlugin的设置类似

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

代码语言:javascript
复制
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>
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50752094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档