NextJs API:使用SSR响应页面进行响应

时间:2020-07-30 08:39:53

标签: javascript reactjs next.js

目标:

  • 使用nextjs api响应服务器端呈现的html

为什么我需要这个:

  • 我正在使用react将页面模型表示为JSON的方式构建自定义内部html页面编辑器。我想将页面模型JSON发送到nextjs api,将其传递给React组件并返回html。

我尝试过的是直接调用ReactDOMServer.renderToString的api:

export default (req, res) => {

  const model = req.body.pageModel

  const body = ReactDOMServer.renderToString(
      <App
        model={model}
      />)

  res.statusCode = HttpStatus.OK
  res.setHeader("Content-Type", "text/html")
  res.end(`
  <!DOCTYPE html>
  <html >
    <head></head>
    <body>
        ${body}
    </body>
  </html>
`)
}

问题:

是否有一种方法可以重用nextjs呈现方法而不是ReactDOMServer.renderToString和JS字符串模板,以便我能够指定和使用自己的_app.js_page.js来响应api?

类似以下内容将满足我的需求:

const html = next.render(<App model={model}>)
res.end(html)

1 个答案:

答案 0 :(得分:0)

如果您愿意使用现成的解决方案,我建议您使用React丰富的编辑器,其中https://draftjs.org/是最受欢迎的。它们带有一系列功能,尤其是您需要的功能和HTML兼容性。