Advertisement
Guest User

Untitled

a guest
Apr 13th, 2017
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var bodyParser = require('body-parser');
  3. var exec = require( "child_process" ).exec;
  4. var path = require("path");
  5. var ssr = require('done-ssr-middleware');
  6. var proxy = require('http-proxy-middleware');
  7. var cookieParser = require('cookie-parser');
  8.  
  9. //vdom
  10. require("can-vdom");
  11. window === global; // true
  12.  
  13. //vdom document
  14. var makeDocument = require("can-vdom/make-document/make-document");
  15. var document = makeDocument();
  16.  
  17. //vdom window
  18. var makeWindow = require("can-vdom/make-window/make-window");
  19. var window = makeWindow({});
  20.  
  21. //express
  22. var app = express();
  23.  
  24. //proxy
  25. app.use('/api', proxy({
  26.     target: 'http://localhost:82/',
  27.     proxyTimeout: 5000,
  28.     changeOrigin: true,
  29.     logLevel: 'debug',
  30.     secure: false,
  31.     onProxyReq: relayRequestHeaders,
  32.     onProxyRes: relayResponseHeaders
  33. }));
  34.  
  35. function relayRequestHeaders(proxyReq, req) {
  36.     Object.keys(req.headers).forEach(function (key) {
  37.         proxyReq.setHeader(key, req.headers[key]);
  38.     });
  39. }
  40.  
  41. function relayResponseHeaders(proxyRes, req, res) {
  42.     Object.keys(proxyRes.headers).forEach(function (key) {
  43.         res.append(key, proxyRes.headers[key]);
  44.     });
  45. }
  46.  
  47. //cookie parser
  48. app.use(cookieParser());
  49.  
  50. //body parser
  51. app.use(bodyParser.urlencoded({ extended: false }));
  52. app.use(bodyParser.json()); // parse application/json
  53.  
  54. //listen
  55. app.set('port', (process.env.PORT || 5000));
  56.  
  57. app.use( express.static(__dirname + '/') );
  58.  
  59. if ( process.argv.indexOf( "--slow" ) !== -1 ) {
  60.     console.log("Delaying everything 1 second");
  61.     app.use( function ( req, res, next ) {
  62.         setTimeout(next, 1000);
  63.     });
  64. }
  65.  
  66. //can-ssr:
  67. app.use( "/", ssr({
  68.     config: __dirname + "/package.json!npm",
  69.     main: "drivetrain/index.stache!done-autorender",
  70.     liveReload: false,
  71.     debug: true
  72. }));
  73.  
  74. //start
  75. app.listen(app.get('port'), function() {
  76.   console.log('Node app is running on port', app.get('port'));
  77. });
  78.  
  79. //develop
  80. if ( process.argv.indexOf( "--develop" ) !== -1 ) {
  81.   //is dev mode so do live reload
  82.   var child = exec( path.join("node_modules",".bin","steal-tools live-reload"), {
  83.     cwd: process.cwd() + "/"
  84.   });
  85.  
  86.   child.stdout.pipe( process.stdout );
  87.   child.stderr.pipe( process.stderr );
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement