Skip to content

Commit 2eb2b3c

Browse files
committed
Initial commit
0 parents  commit 2eb2b3c

File tree

13 files changed

+171
-0
lines changed

13 files changed

+171
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.DS_Store
2+
node_modules
3+
browser-bundle.js
4+
browser-bundle.js.map

app.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
var express = require('express');
2+
var path = require('path');
3+
var favicon = require('static-favicon');
4+
var logger = require('morgan');
5+
var cookieParser = require('cookie-parser');
6+
var bodyParser = require('body-parser');
7+
8+
var routes = require('./routes/index');
9+
10+
var app = express();
11+
12+
// view engine setup
13+
app.set('views', path.join(__dirname, 'views'));
14+
app.set('view engine', 'jade');
15+
16+
app.use(favicon());
17+
app.use(logger('dev'));
18+
app.use(bodyParser.json());
19+
app.use(bodyParser.urlencoded());
20+
app.use(cookieParser());
21+
app.use(express.static(path.join(__dirname, 'public')));
22+
23+
app.use('/', routes);
24+
25+
/// catch 404 and forward to error handler
26+
app.use(function(req, res, next) {
27+
var err = new Error('Not Found');
28+
err.status = 404;
29+
next(err);
30+
});
31+
32+
/// error handlers
33+
34+
// development error handler
35+
// will print stacktrace
36+
if (app.get('env') === 'development') {
37+
app.use(function(err, req, res, next) {
38+
res.status(err.status || 500);
39+
res.render('error', {
40+
message: err.message,
41+
error: err
42+
});
43+
});
44+
}
45+
46+
// production error handler
47+
// no stacktraces leaked to user
48+
app.use(function(err, req, res, next) {
49+
res.status(err.status || 500);
50+
res.render('error', {
51+
message: err.message,
52+
error: {}
53+
});
54+
});
55+
56+
57+
module.exports = app;

bin/www

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env node
2+
var debug = require('debug')('MODULE_NAME');
3+
var app = require('../app');
4+
5+
app.set('port', process.env.PORT || 3000);
6+
7+
var server = app.listen(app.get('port'), function() {
8+
debug('Express server listening on port ' + server.address().port);
9+
});

index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* An example for exporting as npm module.
3+
*
4+
* Use this to import component:
5+
* var TestComponent = require('MODULE_NAME').TestComponent;
6+
*/
7+
module.exports.TestComponent = require('./src/TestComponent.jsx');

package.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"name": "webpack-react-express",
3+
"version": "0.0.1",
4+
"private": true,
5+
"dependencies": {
6+
"react": "^0.11.0"
7+
},
8+
"devDependencies": {
9+
"express": "~4.2.0",
10+
"static-favicon": "~1.0.0",
11+
"morgan": "~1.0.0",
12+
"cookie-parser": "~1.0.1",
13+
"body-parser": "~1.0.0",
14+
"debug": "~0.7.4",
15+
"jade": "~1.3.0",
16+
"statics": "~0.1.0",
17+
"webpack": "^1.3.7",
18+
"jsx-loader": "^0.11.0"
19+
},
20+
"main": "./index.js",
21+
"scripts": {
22+
"start": "webpack --progress --colors --watch -d",
23+
"build": "webpack --progress --colors -p",
24+
"server": "node bin/www",
25+
"test": "echo \"Error: no test specified\" && exit 1"
26+
}
27+
}

public/stylesheets/style.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
body {
2+
padding: 50px;
3+
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4+
}
5+
6+
a {
7+
color: #00B7FF;
8+
}

routes/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var express = require('express');
2+
var router = express.Router();
3+
4+
/* GET home page. */
5+
router.get('/', function(req, res) {
6+
res.render('index', { title: 'Express' });
7+
});
8+
9+
module.exports = router;

src/TestComponent.jsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/** @jsx React.DOM */
2+
var React = require('react');
3+
4+
var TestComponent = React.createClass({
5+
render: function() {
6+
return (
7+
<div>Hello World</div>
8+
);
9+
}
10+
});
11+
12+
module.exports = TestComponent;

src/index.jsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/** @jsx React.DOM */
2+
var React = require('react');
3+
var TestComponent = require('./TestComponent.jsx');
4+
5+
React.renderComponent(
6+
<TestComponent/>,
7+
document.getElementById("react-container")
8+
);

views/error.jade

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extends layout
2+
3+
block content
4+
h1= message
5+
h2= error.status
6+
pre #{error.stack}

0 commit comments

Comments
 (0)