API.js 1.1 KB

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