restful-started
Version:
typescript restful started
76 lines (75 loc) • 3.02 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const ts_express_restful_1 = require("ts-express-restful");
const express_1 = __importDefault(require("express"));
const ts_express_restful_2 = require("ts-express-restful");
const http = __importStar(require("http"));
const db_1 = __importDefault(require("./db"));
const DEFAULT_OPTIONS = {
scannerDir: process.cwd(),
urlPrefix: '',
};
const SERVER_OPTIONS = {
listen: 5000,
};
class RestfulServer {
constructor() {
this.app = express_1.default();
}
configRoute(options) {
options = Object.assign(DEFAULT_OPTIONS, options);
ts_express_restful_1.scannerDecoration(options.scannerDir, [/node_modules/, /\.d.ts$/, /\.map\.js$/]);
let _groups = [...ts_express_restful_1.groups, false];
for (let group of _groups) {
const route = express_1.default.Router();
ts_express_restful_2.registerControllerToRouter(route, { group: group, isShowUrls: true, swagger: true });
if (group) {
this.app.use(`/${group}`, route);
}
else {
//如果group 为false,直接挂在到 "/"
this.app.use('/', route);
}
}
return this;
}
configDb(options) {
if (!options) {
return this;
}
db_1.default.config(options);
return this;
}
start(options) {
return __awaiter(this, void 0, void 0, function* () {
yield db_1.default.dbInit();
options = Object.assign(SERVER_OPTIONS, options);
const server = http.createServer(this.app);
server.on('listening', function () {
console.log(`SERVER HAS STARTED ON ${options.listen}`);
});
server.listen(options.listen);
});
}
}
exports.RestfulServer = RestfulServer;
const restfulServer = new RestfulServer();
exports.default = restfulServer;