oomvc
Version:
Object oriented web framework for NodeJS + Typescript
104 lines (86 loc) • 3 kB
Markdown
# Object oriented web framework for NodeJS (TypeScript).
[](https://www.npmjs.com/package/oomvc)
[](https://npmjs.org/package/oomvc)
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
```typescript
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
```typescript
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](https://github.com/RobinBuschmann/sequelize-typescript/) package since it uses the most acceptable and similar syntax.
## Installation
```bash
$ npm install oomvc
```
## Examples
Clone a git repository:
```bash
$ git clone https://github.com/ummo93/oomvc.git
```
Go to example's folder:
```bash
$ cd ./example
```
Load all dependencies:
```bash
$ npm install
```
Start the server:
```bash
$ npm start
```
Congratulations (it remains only to install and run MySQL to work with the database)!
## Documentation
For details, use the [wiki](https://github.com/ummo93/oomvc/wiki/).
You can also look at the sample application (oomvc + sequelize-typescript) at ./example folder.
## License
[MIT](LICENSE)