【发布时间】:2018-07-22 15:23:42
【问题描述】:
我正在使用 create-react-app 并且刚刚添加了 SSR。
我刚刚添加了一个中间件来 renderToString 反应应用程序。
但我不确定路由。它应该保留在客户端还是快递(服务器)上。如果它在客户端上,则无法正常工作。每个请求都被发送到主页。我写的代码很公平。不确定如何修复它以服务其他页面并仍然保持相同的设置。
代码如下
服务器/index.js
import express from 'express';
import serverRenderer from './middleware/renderer';
const PORT = 3001;
const path = require('path');
const app = express();
const router = express.Router();
router.use('^/$', serverRenderer);
app.use('/static', express.static(path.join(__dirname, 'assets')));
router.use(express.static(
path.resolve(__dirname, '..', 'build'),
{ maxAge: '30d' },
));
router.use('*', serverRenderer);
app.use(router);
...
中间件/renderer.js
import {createMemoryHistory } from 'history';
...
const history = createMemoryHistory({
initialEntries: ['/', '/next', '/last'],
initialIndex: 0
});
export default (req, res, next) => {
console.log(req.url); //logs `/` for every route
};
无法理解我在这里做错了什么。
【问题讨论】:
标签: node.js reactjs express server-side-rendering