進捗状況
TypeScriptでClassを書く
やってることはDay1と同じ
server.ts
import * as express from "express"; // require("express")
import * as helmet from "helmet"; // require("helmet")
import * as bodyParser from "body-parser"; // require("body-parser")
export class MyServer {
private server: any; // expressのインスタンス
private port: number; // port保管
constructor() {
this.server = express(); // インスタンス生成
this.server.use(helmet()); // セキュリティをhelmetで管理
this.server.use(bodyParser.urlencoded({ extended: true})); // URLエンコードしてくれる
this.server.use(bodyParser.json()); // JSON.parse()してくれる
}
addRouter(route: any) {
this.server.use(route); // express.Router()を追加
}
start(port: number) {
this.port = port;
this.server.listen(this.port); // listen開始
}
}
router/test.ts
import * as express from "express";
export class TestRouter {
private router: any;
constructor() {
this.router = express.Router();
this.router.get('/', this.callback);
}
callback(request, response, error) {
response.end('Hello World');
}
getRouter() {
return this.router;
}
}
app.ts
import {MyServer} from './server';
import {TestRouter} from './router/test';
var server: MyServer = new MyServer();
var test: TestRouter = new TestRouter();
server.addRouter(test.getRouter());
server.start(3000);
感想
てっきりES6のclassと同じものだと思ってたけど、
変換後はprototypeになってて笑った。
export修飾子書くだけで、
module.exportsしてくれるの強い。