【发布时间】:2022-01-18 13:05:23
【问题描述】:
我最喜欢做后端工作。我曾经做过很多反应,但我已经有一年没有碰它了,也许更多。现在最近我开始了一个项目,需要我清理我生疏的前端编程技能。
我知道我以前做过这个,但我不太记得我是如何制作多个页面的。我知道我遵循了本教程:https://dev.to/loujaybee/using-create-react-app-with-express,基本上我所做的是:
- 运行 create-react-app 并安装 express.js
- 做一些前端工作,然后使用 npm run build 来构建它。
- 继续从我的 server.js '/' 节点中的 react 构建中提供 index.html 文件。
但如果我想处理多个页面,我完全忘记了我必须做什么。所以我想这是我的问题:如果我想为另一条路线提供不同的文件(让我们以'/browse'为例),我该怎么做?
提前感谢您的帮助!
【问题讨论】:
-
最大的问题是 /browse 路由是否也应该由您的 React 前端呈现。如果不是,您只需将
app.get('/browse', ...)添加到您的快递应用程序中,并提供您喜欢的任何内容作为回应。如果您确实想处理 React 应用程序中的所有 URL,则必须使用 react-router 来处理导航方面,并确保 express 始终使用app.get('*', ...)处理程序为(单个)反应应用程序提供服务。 -
我明白了,如果我需要从我的数据库中获取一些东西。我将如何去做。就像我想从我的服务器上的 react 路由“/home”获取一系列博客文章。我认为我无法在同一条路线上向我的 express 服务器发出 fetch 请求?
-
在开发过程中,您将使用单独的服务器进行 React 热重载(如 localhost:3000)和您的快速后端(如 localhost:4000)。你仍然可以在你的 react 代码中简单地执行
fetch("/api/blogposts"),但如果你将"proxy": "localhost:4000"添加到你的 react 应用程序的 package.json 中。现在您只需要设置 express 以便它首先处理所有/api/*路由,然后*为所有剩余路由提供您的 react 应用程序索引。完成后,构建 react 应用并将其移动到 express 服务器的公共文件夹中。 -
哦,非常感谢!我回家后会试试看!非常感谢你的帮助。最后一个问题:我应该把那一行放在 package.json 的什么地方?
-
不客气 :) 把它放在顶层的任何地方。
标签: javascript node.js reactjs express