我正在编写我的第一个Node / React / Express / Next应用程序。
我不确定如何在请求进入时执行服务器端代码。
当有请求时,我需要从服务器磁盘上获取一些数据。我正在尝试从我的页面目录中的javascript文件执行此操作,但无法从此处访问“fs”模块。我猜这是因为浏览器必须执行代码(这对我来说很困惑,因为我认为next.js意味着服务器正在处理代码并将html导出回来)。
我已经做了很多关于这个问题的谷歌搜索,似乎无法找到答案。这很奇怪,因为这必须是Web应用程序的最基本要求之一。也许解决方案是如此基本,我只是忽略了显而易见的事情?
任何人都可以在React / Express / Next应用程序的/pages/xxx.js文件中提供关于如何进行服务器端处理(例如从服务器磁盘读取文件)的正确方向的简要说明或指示?或者换句话说,我如何或在哪里访问'fs'模块?
我得到的错误是“ModuleNotFoundError:找不到模块:错误:无法解析/ pages中的'fs'
谢谢
您的next.js应用程序分为两部分,部分在客户端和服务器上运行(将页面呈现为HTML),部分仅在服务器上运行(查找页面并通过HTTP公开它们)。
您想要做的只能在服务器上进行,通常在express
(路由框架)领域完成。 Next.js旨在使创建不需要后端但需要服务器端呈现的SPA变得容易。
但是,如果需要,它确实允许修改仅服务器组件。有关该文档的文档可以在"Custom Server and Routing" section of the docs中找到。
然后,您可以添加前端可以调用的API路由,以便从后端请求数据,例如,通过撤消应用程序可以存储在React状态的JSON。