www 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #!/usr/bin/env node
  2. /**
  3. * Module dependencies.
  4. */
  5. process.env.TZ = 'Asia/Shanghai';
  6. var app = require('../app');
  7. var debug = require('debug')('API:server');
  8. var http = require('http');
  9. //var cluster = require('cluster');
  10. //var cpus = require('os').cpus().length;
  11. // if (cluster.isMaster) {
  12. // console.log('[master] ' + "start master...");
  13. // for (var i = 0; i < cpus; i++) {
  14. // cluster.fork();
  15. // }
  16. // cluster.on('listening', function(worker, address) {
  17. // console.log('[master] ' + 'listening: worker' + worker.id + ',pid:' + worker.process.pid + ', Address:' + address.address + ":" + address.port);
  18. // });
  19. // cluster.on('exit', function(worker, code, signal) {
  20. // console.log(`[master] pid:${worker.id} is died, restarting...`);
  21. // cluster.fork();
  22. // });
  23. // } else {
  24. /**
  25. * Get port from environment and store in Express.
  26. */
  27. var port = normalizePort(process.env.PORT || '1000');
  28. app.set('port', port);
  29. /**
  30. * Create HTTP server.
  31. */
  32. var server = http.createServer(app);
  33. /**
  34. * Listen on provided port, on all network interfaces.
  35. */
  36. server.listen(port);
  37. server.on('error', onError);
  38. server.on('listening', onListening);
  39. /**
  40. * Normalize a port into a number, string, or false.
  41. */
  42. function normalizePort(val) {
  43. var port = parseInt(val, 10);
  44. if (isNaN(port)) {
  45. // named pipe
  46. return val;
  47. }
  48. if (port >= 0) {
  49. // port number
  50. return port;
  51. }
  52. return false;
  53. }
  54. /**
  55. * Event listener for HTTP server "error" event.
  56. */
  57. function onError(error) {
  58. if (error.syscall !== 'listen') {
  59. throw error;
  60. }
  61. var bind = typeof port === 'string' ?
  62. 'Pipe ' + port :
  63. 'Port ' + port;
  64. // handle specific listen errors with friendly messages
  65. switch (error.code) {
  66. case 'EACCES':
  67. console.error(bind + ' requires elevated privileges');
  68. process.exit(1);
  69. break;
  70. case 'EADDRINUSE':
  71. console.error(bind + ' is already in use');
  72. process.exit(1);
  73. break;
  74. default:
  75. throw error;
  76. }
  77. }
  78. /**
  79. * Event listener for HTTP server "listening" event.
  80. */
  81. function onListening() {
  82. var addr = server.address();
  83. var bind = typeof addr === 'string' ?
  84. 'pipe ' + addr :
  85. 'port ' + addr.port;
  86. debug('Listening on ' + bind);
  87. }
  88. //}