我正在构建一个Next.JS应用,该应用将从Python API和Postgres数据库获取数据。
通常情况下这很简单,除非要求是这样的,即我需要从服务器端而不是用户客户端发送所有请求。
我一直在研究和研究getInitialProps
,但是由于以下这一行,我不确定这是我需要的完整解决方案README
:
对于初始页面加载,
getInitialProps
将仅在服务器上执行。getInitialProps
仅当通过Link组件或使用路由API导航到其他路由时,才会在客户端上执行。
似乎getInitialProps
是为初始页面加载而设计的,而不是为随后的服务器端数据获取而设计的。
如何以所有请求都来自服务器端的方式设计Next.JS应用程序?
笔记:
- 可以确定,每个请求本质上都会导致初始页面加载。
- 用户客户端可以与节点(Next.JS)服务器进行对话,因为它是公开的。我目前正在与在包装Next.JS试验Express服务器。
提前请任何帮助
我通过在Express中包装Next.JS找到了解决方案!
我已经推一个简单的例子项目的GitHub 这里
该仓库有一个不错的自述文件,以及代码中的注释,详细说明了正在发生的事情。
快速淘汰:
nextApp.render(...)
这些隐式发生在标准Next.JS应用程序中。参见server.jsnextApp.render(...)
。参见server.js。nextApp.render
在的context(ctx
)参数中将传递的值提供给页面getInitialProps
。您可以this.props
通过在中返回这些值来使它们在页面中可用getInitialProps
。参见stars.js欢迎提出建议和改进!