2.4.3 • Published 4 years ago

blocks4node v2.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

blocks4node blocks4node

Promise / async-await based MVC engine for NodeJS

Note : Examples are written in Typescript but you can transpose it to javascript as you need.

Installation

npm install blocks4node

Documentation

Please find blocks4node documentation here.

Basic application example

First create a directory that will contain your application and create the application structure like this :

Application root (~/)
│___ src (sources directory)
│___ www (public web root : @/)

Then, we need to initialize the project and install dependencies :

# The following line creates the package.json
npm init
# In this example, we will create a single file application
# We just need to install typescript and blocks4node as dependencies
npm install --save-dev typescript @types/node
npm install blocks4node
# Typescript compiler initialization
./node_modules/.bin/tsc --init

Then, you must setup your typescript compiler and set ES2017 or later as target in your tsconfig.json configuration file. You can also set an output directory to separate compiled javascript from typescript source files.

{
  "compilerOptions": {
    "target": "ES2017",
    "outDir": "./dist"
    ...
  },
  include: [
    "./src/**/*.ts"
  ]
}

We can write a simple controller that will contain an action that will return a simple Hello World message /src/HomeController.ts :

import { HttpController, HttpRequest, HttpResponse } from "blocks4node/Web";

// Our simple controller
export class HomeController extends HttpController {
  // Our simple action
  public async mainView(request: HttpRequest, response: HttpResponse) {
    return "Hello world !!!";
  }
}

Then, we need to create the application entry point /src/index.ts that will contain the following lines :

import path from "path";
import { Config, ControllerLoader, MvcEngine } from "blocks4node";
import { Router, RouteItem } from "blocks4node/Web/Routing";

// Configure the application directories
// !!! Please note that they must be relative to the application root directory
Config.appRootPath = path.resolve("./");
Config.webRootPath = path.resolve("./www");

// Loading controllers
ControllerLoader.add("HomeController", require("./HomeController"));

// Adding routes
Router.add("home", new RouteItem("^/(home)?$", "HomeController", "mainView"));

// Starting the HTTP server
MvcEngine.start();

Then, we can add scripts to the package.json npm configuration file to be able to easily compile and start our application :

{
  ...
  "scripts": {
    "build": "tsc",
    "start": "node ./dist/index.js server:start"
  },
  ...
}

Finally, we can test our first blocks4node application with the following command :

npm run build
npm start

Now, you can open your favorite internet navigator and go to the http://localhost:8080/ url to see the result.

2.4.3

4 years ago

2.4.2

4 years ago

2.3.0

4 years ago

2.4.1

4 years ago

2.4.0

4 years ago

2.3.1

4 years ago

2.2.0

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.3.0

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago

0.1.0

6 years ago