server.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. const fs = require('fs');
  2. let http = require('http');
  3. let { increaseCount, queryData, closeDB } = require('./countdb');
  4. const routeCounter = '/counter/update';
  5. const routeView = '/counter/view';
  6. const routeData = '/counter/data';
  7. server = http.createServer(function (request, response) {
  8. let u = request.url;
  9. let data = [];
  10. let jdata;
  11. if (u.toLowerCase() === routeCounter) {
  12. request.on('data', chunk => {
  13. data.push(chunk); // 将接收到的数据暂时保存起来
  14. })
  15. request.on('end', () => {
  16. let keys = JSON.parse(data);
  17. increaseCount(keys);
  18. // 返回响应
  19. response.writeHead(200, { 'Content-Type': 'text/plain' });
  20. response.write('success');
  21. response.end();
  22. })
  23. }
  24. else if (u.toLowerCase() === routeData) {
  25. queryData().then(function(dataSet){
  26. jdata = JSON.stringify(dataSet);
  27. response.setHeader('Access-Control-Allow-Origin', '*');
  28. response.writeHead(200, { 'Content-Type': 'text/plain;charset=utf-8' });
  29. response.write(jdata);
  30. response.end();
  31. });
  32. }
  33. // 不用框架显示页面好别扭
  34. else if (u.toLowerCase() === routeView) {
  35. fs.readFile('../web/index.html', 'utf-8', function(err, hdata) {
  36. if (err !== null) {
  37. return console.log(err);
  38. }
  39. response.end(hdata);
  40. })
  41. }
  42. else if (u.toLowerCase() === '/counter/index.js') {
  43. fs.readFile('../web/index.js', 'utf-8', function(err, hdata) {
  44. if (err !== null) {
  45. return console.log(err);
  46. }
  47. response.end(hdata);
  48. })
  49. }
  50. else {
  51. response.writeHead(404, { 'Content-Type': 'text/plain' });
  52. response.write("error");
  53. response.end();
  54. }
  55. });
  56. server.listen(7777);
  57. console.log('CodeCounter server is running...');
  58. server.on('close', function (event) {
  59. console.log('server closed');
  60. });
  61. process.on('exit', function (code) {
  62. closeDB();
  63. console.log('退出码为:', code);
  64. });
  65. process.on('SIGTERM', () => {
  66. console.log('SIGTERM signal received.');
  67. process.exit(3);
  68. });
  69. process.on('SIGINT', () => {
  70. console.log('SIGINT signal received.');
  71. process.exit(2);
  72. });
  73. process.on('SIGQUIT', () => {
  74. console.log('SIGQUIT signal received.');
  75. process.exit(5);
  76. });