Skip to content

Commit a37e8c5

Browse files
committed
Move from side-effects to explicit start up (#1)
* app is now a router; no side effects when importing * Fix missing var
1 parent f8deb3a commit a37e8c5

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "HTTP microservice for rendering React to HTML on the server side",
55
"main": "render.js",
66
"bin": {
7-
"react-service": "render.js"
7+
"react-service": "render-bin.js"
88
},
99
"dependencies": {
1010
"body-parser": "^1.15.2",

render-bin.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var express = require('express');
2+
var {startServer, router} = require('./render');
3+
4+
var app = express();
5+
app.use(router);
6+
startServer(app);

render.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ var argv = require('yargs')
2121

2222
morgan.token('file', function(req, res){ return path.basename(req.body.path_to_source); });
2323

24-
var app = express();
25-
app.use(bodyParser.json({limit: '50mb'}));
26-
app.use(morgan('[:date[iso]] :method :url :status :response-time ms - :file :res[content-length]'));
24+
var router = express.Router();
25+
router.use(bodyParser.json({limit: '50mb'}));
26+
router.use(morgan('[:date[iso]] :method :url :status :response-time ms - :file :res[content-length]'));
2727

2828
// Component cache living in global scope
2929
var cache = {};
@@ -68,7 +68,7 @@ Component.prototype.render = function render(props, toStaticMarkup, callback) {
6868
}
6969
};
7070

71-
app.post('/render', function service(request, response, next) {
71+
router.post('/render', function service(request, response, next) {
7272
var toStaticMarkup = request.body.to_static_markup || false;
7373
var pathToSource = request.body.path_to_source;
7474
var props = request.body.props || {};
@@ -100,10 +100,12 @@ function errorHandler(err, request, response, next) {
100100
response.status(500).send(argv.debug ? err.stack : err.toString());
101101
next();
102102
}
103-
app.use(errorHandler);
103+
router.use(errorHandler);
104104

105-
var server = app.listen(argv.port || 63578, argv.host || 'localhost', function() {
106-
console.log('Started server at http://%s:%s', server.address().address, server.address().port);
105+
function startServer(app) {
106+
var server = app.listen(argv.port || 63578, argv.host || 'localhost', function() {
107+
console.log('Started server at http://%s:%s', server.address().address, server.address().port);
107108
});
109+
}
108110

109-
module.exports = app;
111+
module.exports = {router, startServer};

0 commit comments

Comments
 (0)