UNPKG

1.38 kBJavaScriptView Raw
1import Router from './Router';
2import Response from './Response';
3import Controller from './Controller';
4
5import http from 'http';
6import logger from './logger';
7
8export {
9 Router,
10 Response,
11 Controller as BaseController,
12};
13
14class App {
15
16 port = 6060;
17 prefix = '';
18 base;
19 portMessage = true;
20
21 run() {
22 let routes, controllers;
23 let base = this.base = `${process.cwd()}/${this.prefix}`;
24
25 controllers = `${base}/controllers`;
26
27 try {
28 routes = require(`${base}/routes`).default;
29 } catch(e) {
30 try {
31 routes = require(`${base}/routes`);
32 } catch(e) {
33 throw new Error(`cannot find ${base}/routes, or routes contains error`);
34 }
35 }
36
37
38 try {
39 this.port = require(`${base}/config`).port;
40 } catch(e) {}
41
42 Router.setControllersPath(controllers);
43
44 if (this.portMessage) {
45 this.portMessage = false;
46
47 console.info(`=== Server Started ===`);
48 console.info('');
49 console.info(` port: ${this.port}`);
50 console.info('');
51 console.info(`======================`);
52 console.info('');
53 }
54
55 return http.createServer((req, res) => {
56 logger(req, res);
57
58 Router.route(req, res);
59 }).listen(this.port);
60 }
61
62 set(key, val) {
63 this[key] = val;
64 }
65
66 get(key) {
67 if (this[key]) return this[key];
68 else return undefined;
69 }
70
71}
72
73export default new App();