blocks4node v2.4.3
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.
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
6 years ago