MCPcopy
hub / github.com/wdjungst/react-project / sendWithReactRouter

Function sendWithReactRouter

modules/PublicServerAPI.js:103–134  ·  view source on GitHub ↗
({ req, res, render, webpackStats, routerProps })

Source from the content-addressed store, hash-verified

101}
102
103function sendWithReactRouter({ req, res, render, webpackStats, routerProps }) {
104 const { routes } = routerProps
105 const lastRoute = routes[routes.length - 1]
106 if (lastRoute.isServerRoute) {
107 handleServerRoute(req, res, lastRoute, {
108 params: routerProps.params,
109 location: routerProps.location,
110 routes: routerProps.routes,
111 route: lastRoute
112 })
113 } else if (req.method !== 'GET') {
114 sendNoRoutesMatched(res)
115 } else {
116 render(routerProps, (err, { renderDocument, renderApp }) => {
117 if (err) {
118 onError(err, req, res)
119 } else {
120 const status = err ? err.status : (lastRoute.status || 200)
121 const appElement = renderApp(routerProps)
122 const content = getContent(req, appElement)
123 const documentElement = renderDocument({
124 title: flushTitle(),
125 content: content,
126 scripts: getJavaScriptTags(webpackStats),
127 styles: getStyleTags(webpackStats)
128 })
129 const markup = renderToStaticMarkup(documentElement)
130 res.status(status).send(`<!doctype html>\n${markup}`)
131 }
132 })
133 }
134}
135
136function handleServerRoute(req, res, route, props) {
137 const handler = route[req.method.toLowerCase()]

Callers 1

createServerFunction · 0.85

Calls 4

handleServerRouteFunction · 0.85
onErrorFunction · 0.85
getContentFunction · 0.85
renderFunction · 0.70

Tested by

no test coverage detected