Quick Example

This page will guide you through a quick example of a Mandarine-powered application

Step I: Installing Deno

Shell (Mac, Linux):

curl -fsSL https://deno.land/x/install/install.sh | sh

PowerShell (Windows):

iwr https://deno.land/x/install/install.ps1 -useb | iex

Step II: Example file

Create a example file which the following content:

import { Controller, Service, GET, Session, MandarineCore } from "https://deno.land/x/mandarinets/mod.ts";

@Service()
export class MyService {

    public sayARandomName(): string {
        let names: Array<string> = ["Andres", "Maureen", "Elsa"];
        return names[Math.floor(Math.random() * names.length)];
    }

}

@Controller()
export class MyController {

    constructor(private readonly myService: MyService){}

    @GET('/hello-world')
    public helloWorld(@Session() session: any) {
        if(session.times == undefined) session.times = 0;
        session.times++;

        return `Hello World number #${session.times} (Yes, there are multiple universes)`;
    }

    @GET('/say-hi')
    public sayHi() {
        return `Hello <b>${this.myService.sayARandomName()}</b> from a randomly method.`;
    }

}

new MandarineCore().MVC().run();

In the example above, we have created 2 endpoints: /hello-world which tests the use of Sessions in Mandarine, and /say-hi which tests the use of Dependency Injection.

Step III: Running your file

tsconfig.json

Create a tsconfig.json in your current working directory with the following content:

{
    "compilerOptions": {
        "strict": false,
        "noImplicitAny": false,
        "noImplicitThis": false,
        "alwaysStrict": false,
        "strictNullChecks": false,
        "strictFunctionTypes": true,
        "strictPropertyInitialization": false,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "allowUmdGlobalAccess": false,
    }
}

After creating tsconfig.json , from your command line, now run deno run:

$ deno run --config tsconfig.json --allow-net --allow-read myFile.ts

Don't forget to replace myFile.ts with the route of your file or name of your file in the current working directory.

After running go to http://localhost:8080/hello-world or http://localhost:8080/say-hi.

Note

If you request http://localhost:8080/hello-world multiple times, you will see how the number increases since a session is being used.

Last updated