BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #40697同步于 2018/3/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

React 怎么和 Express 一起用啊????

splendidone
2018/3/19镜像同步9 回复
现在我是这么做的:React 是通过 create-react-app 生成的,build 出来的文件放到 node public 下面,然后在 node 里设置 app.use(express.static('public')),这样能访问 /build。但是如果我想访问 /build/foo,这样就会显示 cannot get。这种情况应该怎么办呢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
cocoyimasa机器人#1 · 2018/3/19
自己看看express的路由怎么设置的吧。。 你这是对路由没什么概念啊。。 举个栗子,你可以这样: ``` app.use("/build/foo",function(req,res){ console.log("关于"); res.send("wroted by leftfist"); }); ```
splendidone机器人#2 · 2018/3/19
express 后台我已经写完了。在 react 调试过程中,react 占用 3000 端口,node 占 8000 端口,访问 :3000/a/b/c 这种都是可以的 【 在 cocoyimasa 的大作中提到: 】 : 自己看看express的路由怎么设置的吧。。 : 你这是对路由没什么概念啊。。 : 举个栗子,你可以这样: : ...................
splendidone机器人#3 · 2018/3/19
如果是 template 那种,一个路由就返回一个 html 带一些数据就可以渲染了,但是 react build 之后只有一个 index.html,怎么渲染呢 【 在 cocoyimasa 的大作中提到: 】 : 自己看看express的路由怎么设置的吧。。 : 你这是对路由没什么概念啊。。 : 举个栗子,你可以这样: : ...................
cocoyimasa机器人#4 · 2018/3/19
react-router 【 在 splendidone 的大作中提到: 】 : 如果是 template 那种,一个路由就返回一个 html 带一些数据就可以渲染了,但是 react build 之后只有一个 index.html,怎么渲染呢
PiEgg机器人#5 · 2018/3/19
我是vue的技术栈,虽然不懂react不过都是SPA页面的话流程都是一样的。 因为是前端路由,所以诸如`/a/b`这类深层次的路由,如果express后端不配置转发回前端,交由前端路由的话,就会默认走express的后端路由。那么自然是404。解决办法是在你的static路由之前加一个history-fallback的中间件。 项目地址可以参考:https://github.com/bripkens/connect-history-api-fallback PS:话说react官方文档没有讲生产发布的事项么。。。vue-router的文档讲得挺清楚的。。
rp2011211472机器人#6 · 2018/3/19
你既然写前端不需要express 尽管create-react-app的npm dependencies里会借用node的http server用来作为开发服务器 你需要的只是一个router react里一般使用react-router 楼上提到的history-fallback(忘了在react里叫什么了 反正其实都是路由里的浏览器/app后退功能)从react-router^4.0以后被移除了 所以网上很多人会使用react-router^3.0.1 建议你去找找网上教程跟着做 自己这样摸索很累的
splendidone机器人#7 · 2018/3/19
我用的是4.0之后版本的react-router,竟然是这种情况...我要研究一下 【 在 rp2011211472 的大作中提到: 】 : 你既然写前端不需要express 尽管create-react-app的npm dependencies里会借用node的http server用来作为开发服务器 你需要的只是一个router : react里一般使用react-router 楼上提到的history-fallback(忘了在react里叫什么了 反正其实都是路由里的浏览器/app后退功能)从react-router^4.0以后被移除了 所以网上很多人会使用react-router^3.0.1 : 建议你去找找网上教程跟着做 自己这样摸索很累的
w153409018机器人#8 · 2018/3/20
app.get('*', function (request, response){ response.sendFile(path.resolve(__dirname, 'public', 'index.html')) })
w153409018机器人#9 · 2018/3/20
所有路由返回index.html 剩下的react router会去做