Mandarine.TS
Latest
Latest
  • Mandarine.TS
  • Getting started
    • Installing Deno Runtime
    • Setting up Environment
    • Quick Example
  • Concepts
  • Mandarine Project Structure
  • Mandarine CLI
    • CLI Reference
      • mandarine new
      • mandarine generate
      • mandarine run
  • Mandarine Core
    • Core Initialization
    • Mandarine.json
    • Dot env file
    • Properties
      • The @Value Decorator
    • Components
      • Controller
      • Middleware
      • Repository
      • Component
      • Service
      • Configuration
      • Manual Component
    • Dependency Injection
      • Accessing DI container
    • Resource Handlers
      • Resource Handler Registry
      • Resource Handler
      • Resource Resolver
  • Mandarine MVC
    • Web MVC
    • Controllers
      • Routes
        • Parameterized Routes
      • HTTP Handlers
      • @ResponseStatus
    • Custom Middleware
    • Session Middleware
    • CORS Middleware
    • Template Engine
      • @Render Decorator
      • Accessing data from template
    • Launching web-app
    • Serving Static Content
    • Multipart Form Data
  • Mandarine Security
    • Sessions
  • Mandarine Data
    • ORM
      • Data source
      • Models
      • Repositories
        • Interacting with data
        • Updating data
    • Mandarine Query Language
  • Resources
    • Changelog
  • Plugins
    • Optional
    • Promise Repeater
Powered by GitBook
On this page
  • Step I: Installing Deno
  • Step II: Example file
  • Step III: Running your file
  • Note

Was this helpful?

  1. Getting started

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();

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.

PreviousSetting up EnvironmentNextConcepts

Last updated 4 years ago

Was this helpful?

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

Sessions
Dependency Injection