namesny-com/src/server.js

50 lines
1.2 KiB
JavaScript

require('babel-register');
var app = new (require('express'))();
var port = process.env.PORT || 3000;
require('css-modules-require-hook')({
generateScopedName: '[name]__[local]___[hash:base64:5]'
});
var fs = require('fs');
var filename = './src/utils/data.json';
var dataStub = {"posts": []};
fs.writeFileSync(filename, JSON.stringify(dataStub));
// initalize webpack dev middleware if in development context
if (process.env.NODE_ENV === 'development') {
var webpack = require('webpack')
var config = require('../webpack.config')
var devMiddleware = require('webpack-dev-middleware')
var hotDevMiddleware = require('webpack-hot-middleware')
var compiler = webpack(config)
var devMiddlewareConfig = {
noInfo: true,
stats: {colors: true},
publicPath: config.output.publicPath
}
app.use(devMiddleware(compiler, devMiddlewareConfig))
app.use(hotDevMiddleware(compiler))
}
app.use(require('express').static('public'));
require('./utils/scanner')();
var api = require('./utils/api');
app.use("/api", api);
var serverRender = require('./utils/serverRender');
app.get("*", serverRender);
app.listen(port, function(error) {
if (error) {
console.error(error);
} else {
console.info("[Server] Listening on port %s", port);
}
})