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