0.4.3 • Published 8 years ago
oomvc v0.4.3
Object oriented web framework for NodeJS (TypeScript).
Object oriented web framework. OOMVC is a web framework with a minimal number of dependencies (handlebars templating engine only). Founded on pure http.Server.
Server
import { Application } from "oomvc";
import { Server } from "http";
import mainCtrl from './controller/MainCtrl';
class MainServer extends Application {
public port = process.env.PORT || 5000;
public staticPath = "public";
public controllers = [
mainCtrl
];
public start(instance: Server) {
instance.listen(this.port, () => {
console.log('[%d] Server start at port %s', process.pid, this.port);
});
}
}
export default new MainServer().init();Controller
import { Controller } from "oomvc";
import { Response } from "oomvc/lib/Response";
import { Request } from "oomvc/lib/Request";
class MainCtrl extends Controller {
public viewPath = "src/views/"; // Redefining view path. Defaults = "./src/views/"
protected partialsPath = "src/views/inc/"; // Redefine path to handlebars partials. Defaults = "./src/views/"
@Controller.get("/hello/:name")
private getUser(req: Request, res: Response) {
res.send(`Hello ${req.params.get("name")}!`, 200);
}
@Controller.get("/")
private getMainPage(req: Request, res: Response): void {
let data = {
"name": "Alan",
"cook": req.cookies["Test"],
"hometown": "Somewhere, TX",
"kids": [
{ "name": "Jimmy", "age": "14" },
{ "name": "Sally", "age": "10" }
]
};
res.cookie("Test", "12356");
this.render("index", data).then(template => {
res.send(template, 200);
}).catch(error => {
res.send(error, 404);
});
}
}
export default new MainCtrl().init();Model
For Model components i recommend using sequelize-typescript package since it uses the most acceptable and similar syntax.
Installation
$ npm install oomvcExamples
Clone a git repository:
$ git clone https://github.com/ummo93/oomvc.gitGo to example's folder:
$ cd ./exampleLoad all dependencies:
$ npm installStart the server:
$ npm startCongratulations (it remains only to install and run MySQL to work with the database)!
Documentation
For details, use the wiki.
You can also look at the sample application (oomvc + sequelize-typescript) at ./example folder.