node.js - 你如何在 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
谢谢
解决方案
您的 next.js 应用程序分为两部分,一部分在客户端和服务器上运行(将页面呈现为 HTML),另一部分仅在服务器上运行(查找页面并通过 HTTP 公开它们)。
您想要做的事情只能在服务器上进行,并且通常在express
路由框架的领域中完成。Next.js 旨在使创建不需要后端但需要服务器端渲染的 SPA 变得容易。
但是,如果需要,它确实允许修改仅服务器组件。可以在文档的“自定义服务器和路由”部分找到相关文档。
然后,您可以添加前端可以调用的 API 路由以从后端请求数据,例如通过返回应用程序可以存储在 React 状态中的 JSON。
推荐阅读
- css - 我如何使用 bootstrap 4 在图像上做响应式文本
- delay - 如果有条件,icarus verilog 指定不遵守延迟
- java - Firebase 数据库不同步
- python - 在python中找到给定格拉姆矩阵的原始矩阵
- playframework - 在 Play Framework 2.5 中使用 akka actor
- typescript - 为什么 jest 或 jsdom 不支持 contenteditable
- oracle-sqldeveloper - 如何在 Oracle SQL Developer 代码编辑器中将选定的(突出显示的文本)向右/向左移动?
- html - 为什么缩小时我的html表中的列不统一
- css - Vuetify JS 2.x 卡片内容 z-index
- jwt - invalid_client 使用 Apple REST API 调用登录时出错