-
Notifications
You must be signed in to change notification settings - Fork 135
Open
Description
This would allow some optional server customization, but still keep everything 'battery-pack included'
// PublicServerAPI.js
export function createServer({ renderDocument, renderApp, routes, devMiddlewares, prodMiddlewares }) {
const server = express()
const webpackStats = getWebpackStats()
if (process.env.NODE_ENV === 'production') {
server.use(compression())
prodMiddlewares(server)
server.use(express.static(PUBLIC_DIR))
} else {
devMiddlewares(server)
}
...// Example middleware hooks (psuedo code)
// modules/server.js
...
import { createServer } from 'react-project/server'
..
import morgan from 'morgan'
import newrelic from 'newrelic'
...
function devMiddlewares(server) {
server.use(morgan('dev'))
}
function prodMiddlewares(server) {
server.use(morgan('combined'))
server.locals.newrelic = newrelic
}
createServer({
renderDocument,
renderApp,
routes,
devMiddlewares,
prodMiddlewares
}).start()
...Metadata
Metadata
Assignees
Labels
No labels