Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. import path from 'path';
  2. import express from 'express';
  3. import webpack from 'webpack';
  4. import webpackDevMiddleware from 'webpack-dev-middleware';
  5. import webpackHotMiddleware from 'webpack-hot-middleware';
  6. import bodyParser from 'body-parser';
  7. import { graphqlExpress, graphiqlConnect } from 'graphql-server-express';
  8.  
  9. // Other imports
  10. import Mongoose from './mongoose/mongoose.js';
  11. import GQLSchema from './graphql/schema.js';
  12. import webpackConfig from '../webpack.config';
  13.  
  14. // Express instance
  15. const app = express();
  16.  
  17. // Check to see if we're in a developer environment (yarn run dev)
  18. const isDeveloping = process.env.NODE_ENV !== 'production';
  19.  
  20. // Set port using command line PORT variable if we're not using dev server
  21. const port = isDeveloping ? 3000 : process.env.PORT;
  22.  
  23. // Webpack middleware if in dev mode.
  24. if (isDeveloping) {
  25.  
  26. // Middleware initialization
  27. const compiler = webpack(webpackConfig);
  28. const webpackMiddleware = webpackDevMiddleware(compiler);
  29.  
  30. // Apply middlewares from Webpack
  31. app.use(webpackMiddleware);
  32. app.use(webpackHotMiddleware(compiler));
  33.  
  34. // File to serve:
  35. const serveMe = path.resolve(__dirname, '..', 'client', 'index.html');
  36.  
  37. // Handle GET requests to the Express server
  38. app.get('/', (req, res) => {
  39. res.sendFile(serveMe);
  40. res.end();
  41. });
  42.  
  43. } else {
  44. app.use(express.static(__dirname + '../client/dist'));
  45. app.get('*', function response(req, res) {
  46. res.sendFile(path.join(__dirname, '../client/dist/index.html'));
  47. });
  48. }
  49.  
  50. // Apollo+GraphQL Endpoints
  51. app.use('/graphql', bodyParser.json(), graphqlExpress({ schema: GQLSchema }));
  52. app.use('/graphiql', graphiqlConnect({ endpointURL: '/graphql' }));
  53.  
  54. app.listen(port, (err) => {
  55. if (err) console.log(`Unable to start Express server: ${err}`);
  56. console.log(`Listening on port ${port}!`);
  57. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement