index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. var express = require('express');
  2. var fs = require('fs');
  3. var app = express();
  4. const mime = require('mime-types');
  5. var port = process.env.PORT || 11111;
  6. var host = process.env.HOST || 'localhost';
  7. var router = require('./routes/router')
  8. var cors = require('cors');
  9. var path = require('path');
  10. app.use(cors());
  11. // 配置静态文件目录
  12. const staticDir = path.join(__dirname, 'public');
  13. // 设置静态文件中间件
  14. app.use(express.static(staticDir, {
  15. // 缓存控制(1天)
  16. //maxAge: '1d',
  17. maxAge: 0,
  18. cacheControl: false,
  19. etag: false,
  20. lastModified: false,
  21. // 设置索引文件
  22. index: ['index.html', 'index.htm'],
  23. // 自定义文件类型处理
  24. setHeaders: (res, filePath) => {
  25. const contentType = mime.contentType(path.extname(filePath)) || 'application/octet-stream';
  26. res.setHeader('Content-Type', contentType);
  27. res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
  28. res.setHeader('Pragma', 'no-cache');
  29. res.setHeader('Expires', '0');
  30. // 为特定文件类型添加额外头信息
  31. if (filePath.endsWith('.css')) {
  32. res.setHeader('X-Content-Type-Options', 'nosniff');
  33. }
  34. }
  35. }));
  36. app.use(express.json());
  37. app.use(express.urlencoded({ extended: false }));
  38. var http = require('http');
  39. const httpsOption = {
  40. // key : fs.readFileSync("/etc/letsencrypt/live/beta.api.cocorobo.cn/privkey.pem"),
  41. // cert: fs.readFileSync("/etc/letsencrypt/live/beta.api.cocorobo.cn/fullchain.pem")
  42. }
  43. var httpsserver = http.createServer(httpsOption, app);
  44. app.use('/api', router);
  45. httpsserver.listen(port);
  46. console.log("Server running at http://" + host + ":" + port + "/");