@cbto/rest-helper v1.2.1
Instruction
Installation
install typescript, express & @cbto/resthelper latest version:
npm i --save-dev @cbto/rest-helper express typescriptcreate file tsconfig.json
tsc --initinit entry file server.ts and put these code inside:
import { moduleCollector } from "@cbto/rest-helper";
import express from "express";
import bodyParser from "body-parser";
// first configuration
const app = express();
// put your middlewares here
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
// register routes
moduleCollector.getRegisteredModule().forEach((module) => {
module.registerEndpoints(app);
});
// start your server with custom port
app.listen(2002, (err) => {
if (err) {
console.log(err);
}
});And then start the server with
ts-node serveror
node_modules/.bin/ts-node serverinstall ts-node incase you dont have it:
npm install -g ts-nodeModule and routes
enable decorator
{
"compilerOptions": {
// ...
"experimentalDecorators": true
/* Basic Options */
// ...
}
}create controller ./trello/controllers/task.controller.ts:
import { restGet, BaseController } from "@cbto/rest-helper";
export class TaskController extends BaseController {
@restGet("/randomNumber")
public randomNumber() {
return {
result: Math.round(Math.random() * 10),
};
}
}register controller to module ./trello/index.ts and import module to the entry file:
import { TaskController } from "./controllers/task.controller";
import { module, BaseModule } from "@cbto/rest-helper";
@module("trello")
export class TrelloModule extends BaseModule {
protected getAllEndpoints() {
// register controllers to module here
const controllers = [TaskController];
return this.getEndpointsOfControllers(controllers);
}
}edit file server.ts:
import "./trello"; // <<----
import { moduleCollector } from "@cbto/rest-helper";
import express from "express";
// ...get param and body from request:
@restPost('/trello/tasks/:taskId/finish')
public finishTask(taskId: string, body: any): number {
logDebug(`Finishing task ${taskId}`);
logDebug(`Body: ${JSON.stringify(body)}`);
return 1;
}
@restPost('/trello/tasks/:taskId/reject')
public rejectTask(taskId: string, body: any): number {
logDebug(`Rejecting task ${taskId}`);
logDebug(`Body: ${JSON.stringify(body)}`);
return 0;
}Load and use configuration
If your configuration file is located at the root folder default.json, you can use loadJsonConfig, and useJsonConfig can be called any where in your project once your config file has been loaded:
import { loadJsonConfig, useJsonConfig } from "@cbto/rest-helper";
///...
const fileConfig1 = "default";
//const fileConfig2 = 'default.dev';
//const fileConfig3 = 'dev/default';
loadJsonConfig(fileConfig1).then(() => {
// START the server
const port = useJsonConfig("server.port");
app.listen(port, () => {
//...
});
});5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago