Required NodeJS@^16.0
cp .env-example .envand fill necessary paramsnpm installoryarnnpm run devoryarn dev- Check running at localhost:3001/health
Production build uses yarn prod, compiles to .dist
Set up routes at app/modules/routes/routes.ts importing the correct functions to the application.
You should use Controllers at app/modules/controller to create database communication methods, and
set up viewers at app/modules/routes/route-domain to instantiate and call controller's methods.
import { AbstractMongoDBEntity } from '@/abstract/AbstractMongoDBEntity';
import { MyDataModel } from '@/interfaces/MyDataModel';
class MyController extends AbstractMongoDBEntity {
protected table = 'MyTable';
protected data: MyDataModel;
constructor(data?: MyDataModel) {
super();
this.data = data;
}
async getCertainDocument() {
const collection = this.mongo.collection(this.table);
const result = await collection.findAll();
this.disconnect();
return result;
}
async overrideFindOne(query: FilterQuery<any>, opts?: FindOneOptions<any>) {
return await this.findOne(query, opts);
}
// ... other methods
}CryptoJsHandler::class provides encryption and decryption methods. To start using, create a ssh key called crypto-js in app/.shh.
import { CryptoJsHandler } from '@/util/CryptoJSHandler';
// Instantiates the handler
const handler = new CryproJSHandler();
// Encrypt some string
const encrypted = handler.encrypt('MySensitiveData123');
// encrypted = "e69b2774de366007b336f5cb0ea8ecb4336cbd69a4a5e6d4c7068fd59866a384"
// Decript some string
const decrypted = handler.decrypt(encrypted);
// decrypted = "MySensitiveData123"Keep the documentation up to date before pushing up.
Services are classes used to perform outside world communication such as any API, or external integration. The orientation of use will vary between Controllers and viewers, depending on what kind of job it will do. For example, if you need to proxy a request, use inside a viewer. If you need to check something while processing data, use inside a controller method.
Avoid using static methods and keep the single responsibility standard up to date. Use interfaces to better organize entities and control the data flow.
Run yarn run-script to get examples.
Deploy this application using docker-compose up -d --build.
Before deploying, change
docker-compose.ymlwith a secure username and password to the DB and add it to the.envfile.
Verify
docker-compose's ports to avoid conflicts.