API.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const express = require('express');
  2. const Logger = require('./Logger');
  3. const path = require('path');
  4. class API {
  5. constructor() {
  6. this.router = express.Router();
  7. this.namespace = '';
  8. this.path = '';
  9. this.method = 'get';
  10. this.logger = new Logger(path.join(__dirname, '../logs/API.log'), 'INFO');
  11. }
  12. setNamespace(namespace, filename) {
  13. this.namespace = namespace;
  14. }
  15. setPath(path) {
  16. this.path = path;
  17. }
  18. setMethod(method) {
  19. this.method = method.toLowerCase();
  20. }
  21. getRouter() {
  22. return this.router;
  23. }
  24. async onRequest(req, res) {
  25. throw new Error('onRequest方法未实现');
  26. }
  27. setupRoute() {
  28. this.router[this.method](this.path, async (req, res) => {
  29. await this.onRequest(req, res);
  30. });
  31. }
  32. setAllowCORS(res) {
  33. res.setHeader('Access-Control-Allow-Origin', '*');
  34. res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
  35. res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
  36. }
  37. }
  38. module.exports = API;