Skip to content

Commit acf86bb

Browse files
committed
Updated the example render servers
1 parent c82cf03 commit acf86bb

6 files changed

Lines changed: 103 additions & 61 deletions

File tree

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"private": true,
33
"dependencies": {
4-
"babel": "^5.6.14",
4+
"babel": "^5.8.23",
55
"body-parser": "^1.13.2",
6-
"express": "^4.13.1",
6+
"express": "^4.13.3",
77
"react": "^0.13.3",
8-
"react-render": "^0.3.0"
8+
"react-render": "^0.3.0",
9+
"yargs": "^3.25.0"
910
}
1011
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
var argv = require('yargs')
2+
.option('p', {
3+
alias: 'port',
4+
description: 'Specify the server\'s port',
5+
default: 9009
6+
})
7+
.option('a', {
8+
alias: 'address',
9+
description: 'Specify the server\'s address',
10+
default: '127.0.0.1'
11+
})
12+
.help('h').alias('h', 'help')
13+
.strict()
14+
.argv;
15+
16+
var http = require('http');
17+
var express = require('express');
18+
var bodyParser = require('body-parser');
19+
var reactRender = require('react-render');
20+
21+
// Ensure support for loading files that contain ES6+7 & JSX
22+
require('babel/register');
23+
24+
var ADDRESS = argv.address;
25+
var PORT = argv.port;
26+
27+
var app = express();
28+
var server = http.Server(app);
29+
30+
app.use(bodyParser.json());
31+
32+
app.get('/', function(req, res) {
33+
res.end('React render server');
34+
});
35+
36+
app.post('/render', function(req, res) {
37+
reactRender(req.body, function(err, markup) {
38+
if (err) {
39+
res.json({
40+
error: {
41+
type: err.constructor.name,
42+
message: err.message,
43+
stack: err.stack
44+
},
45+
markup: null
46+
});
47+
} else {
48+
res.json({
49+
error: null,
50+
markup: markup
51+
});
52+
}
53+
});
54+
});
55+
56+
server.listen(PORT, ADDRESS, function() {
57+
console.log('React render server listening at http://' + ADDRESS + ':' + PORT);
58+
});

examples/basic_rendering/server.js

Lines changed: 0 additions & 40 deletions
This file was deleted.

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"private": true,
33
"dependencies": {
4-
"babel": "^5.6.14",
4+
"babel": "^5.8.23",
55
"body-parser": "^1.13.2",
6-
"express": "^4.13.1",
6+
"express": "^4.13.3",
77
"react": "^0.13.3",
8-
"react-render": "^0.3.0"
8+
"react-render": "^0.3.0",
9+
"yargs": "^3.25.0"
910
}
1011
}

tests/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
if output.strip() == '':
1717
output += process.stdout.readline().decode('utf-8')
1818

19-
if 'python-react test render server' not in output:
19+
if 'React render server' not in output:
2020
raise Exception('Unexpected output: "{}"'.format(output))

tests/test_server.js

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,58 @@
1+
var argv = require('yargs')
2+
.option('p', {
3+
alias: 'port',
4+
description: 'Specify the server\'s port',
5+
default: 9009
6+
})
7+
.option('a', {
8+
alias: 'address',
9+
description: 'Specify the server\'s address',
10+
default: '127.0.0.1'
11+
})
12+
.help('h').alias('h', 'help')
13+
.strict()
14+
.argv;
15+
116
var http = require('http');
217
var express = require('express');
318
var bodyParser = require('body-parser');
419
var reactRender = require('react-render');
520

6-
// Ensure support for JSX files
21+
// Ensure support for loading files that contain ES6+7 & JSX
722
require('babel/register');
823

9-
var ADDRESS = '127.0.0.1';
10-
var PORT = 9009;
24+
var ADDRESS = argv.address;
25+
var PORT = argv.port;
1126

1227
var app = express();
1328
var server = http.Server(app);
1429

1530
app.use(bodyParser.json());
1631

32+
app.get('/', function(req, res) {
33+
res.end('React render server');
34+
});
35+
1736
app.post('/render', function(req, res) {
1837
reactRender(req.body, function(err, markup) {
19-
var error = null;
2038
if (err) {
21-
error = {
22-
type: err.constructor.name,
23-
message: err.message,
24-
stack: err.stack
25-
};
39+
res.json({
40+
error: {
41+
type: err.constructor.name,
42+
message: err.message,
43+
stack: err.stack
44+
},
45+
markup: null
46+
});
47+
} else {
48+
res.json({
49+
error: null,
50+
markup: markup
51+
});
2652
}
27-
res.json({
28-
error: error,
29-
markup: markup
30-
});
3153
});
3254
});
3355

3456
server.listen(PORT, ADDRESS, function() {
35-
console.log('python-react test render server listening at http://' + ADDRESS + ':' + PORT);
57+
console.log('React render server listening at http://' + ADDRESS + ':' + PORT);
3658
});

0 commit comments

Comments
 (0)