Skip to main content
Module

x/alosaur/examples/handlebars/README.md

Alosaur - Deno web framework with many decorators
Very Popular
Go to Latest
File

Handlebars example for Alosaur

import { Handlebars } from 'https://deno.land/x/handlebars@v0.2.2/mod.ts';
import { App, Area, Controller, Get, QueryParam, View, ViewRenderConfig } from 'https://deno.land/x/alosaur/mod.ts';

@Controller('')
export class HomeController {
    @Get('/')
    text(@QueryParam('name') name: string) {
        return View('index', { name });
    }
}

@Area({
    controllers: [HomeController],
})
export class HomeArea {}

const app = new App({
    areas: [HomeArea],
});

// Basedir path
const viewPath = `${Deno.cwd()}/examples/handlebars/views`;

// Create Handlebars config
const handle = new Handlebars({
    baseDir: viewPath,
    extname: '.hbs',
    layoutsDir: 'layouts/',
    partialsDir: 'partials/',
    defaultLayout: 'main',
    helpers: undefined,
    compilerOptions: undefined,
});

app.useViewRender({
    type: 'handlebars',
    basePath: viewPath,
    getBody: async (path: string, model: any, config: ViewRenderConfig) => await handle.renderView(path, model),
});

app.listen();
Run:

deno run  --unstable -A --config ./src/tsconfig.lib.json examples/handlebars/app.ts

Then open browser in url: http://localhost:8000/?name=Alosaur