首页 > 解决方案 > Next.js 拦截响应

问题描述

这是我的服务器的外观片段

nextApp.prepare().then(() => {
    createServer((req, res) => {
    const parsedUrl = parse(req.url!, true);
    handleNextRequest(req, res, parsedUrl);
    }).listen(port);
});

一旦我得到请求的响应,我如何基本上附加 html 评论或任何标签?

我想做的是,在body标签之前和之后,我想添加一些评论。

当前结构

<body></body>

我想要的是

<!--someContext-->
  <body> some content </body>
<!--someMoreContext-->

标签: node.jsnext.js

解决方案


您可以通过编辑_document用作页面基本模板的 Next 的特殊文件来完成。

// ./pages/_document.js
import Document, { Html, Head, Main, NextScript } from 'next/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }

  render() {
    return (
      <Html>
        <Head />
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    )
  }
}

export default MyDocument

推荐阅读