首页 > 解决方案 > 你如何在 React 应用程序中进行服务器端处理?

问题描述

我正在编写我的第一个 Node/React/Express/Next 应用程序。

我不确定当请求进来时如何执行服务器端代码。

当有请求时,我需要从服务器磁盘上获取一些数据。我正在尝试从我的页面目录中的 javascript 文件执行此操作,但无法从此处访问“fs”模块。我猜那是因为浏览器必须在执行代码(这让我感到困惑,因为我认为 next.js 意味着服务器正在处理代码并将 html 导出回来)。

我已经对这个问题做了很多谷歌搜索,但似乎找不到答案。这很奇怪,因为这必须是 Web 应用程序最基本的要求之一。也许解决方案是如此基本,而我只是忽略了显而易见的问题?

任何人都可以提供关于如何从 React/Express/Next 应用程序中的 /pages/xxx.js 文件进行服务器端处理(例如从服务器磁盘读取文件)的简要解释或正确方向的指示吗?或者换句话说,我如何或在哪里访问“fs”模块?

我得到的错误是“ModuleNotFoundError: Module not found: Error: Can't resolve 'fs' in /pages

谢谢

标签: node.jsreactjsexpressnext.js

解决方案


您的 next.js 应用程序分为两部分,一部分在客户端服务器上运行(将页面呈现为 HTML),另一部分仅在服务器上运行(查找页面并通过 HTTP 公开它们)。

您想要做的事情只能在服务器上进行,并且通常在express路由框架的领域中完成。Next.js 旨在使创建不需要后端但需要服务器端渲染的 SPA 变得容易。

但是,如果需要,它确实允许修改仅服务器组件。可以在文档的“自定义服务器和路由”部分找到相关文档

然后,您可以添加前端可以调用的 API 路由以从后端请求数据,例如通过返回应用程序可以存储在 React 状态中的 JSON。


推荐阅读