我正在使用 Next.js,并且我有一个使用 Express 的自定义服务器。我有一个页面需要来自数据库的一些数据。
getInitialProps()
,在服务器上运行时,可以从数据库中抓取数据并返回,没有任何问题。但是, getInitialProps()
也可以在客户端运行(当用户最初请求不同的页面,然后导航到该页面时)。在那种情况下,因为我在客户端,我显然不能只从数据库中获取数据 - 我必须使用 AJAX 与服务器对话并要求它为我检索数据。
当然,这也意味着我在服务器上定义了一个新的 Express 路由来处理这个请求,它会包含与服务器端完全相同的代码 getInitialProps()
,这是非常不可取的。
处理这个问题的最佳方法是什么?
原文由 ShdNx 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于似乎不存在好的解决方案,我创建并发布了一个库来为这个问题提供一个简单而优雅的解决方案: next-express 。