Skip to content

candyframework/candyjs

Repository files navigation

An object-oriented efficient MVC and REST framework

NPM version Test coverage

CandyJs is a new framework and it is not based on the third party framework

Deno

Try https://jsr.io/@candy/framework

Why CandyJs

  • CandyJs implements the MVC (Model-View-Controller) architectural pattern

  • Auto router system

  • CandyJs is extremely extensible

  • Practice with TypeScript

DOC

Version of Node.js

nodejs >= 10.0

Quick start

# install
npm install -g @candyjs/cli

# run the command
candyjs-cli

Hello world

CandyJs application start with an entry file

// the entry file index.ts
import "@candyjs/tswrapper";

import CandyJs from "candyjs";
import App from "candyjs/web/Application";

new CandyJs(
    new App({
        "id": 1,

        // define debug mode
        "debug": true,

        // define the base path of the running application
        "appPath": __dirname + "/app",
    }),
).listen(2333, () => {
    console.log("listen on 2333");
});

Alias

  • @candy the directory where the Candy.ts file is located

  • @app the base path of the running application

  • @runtime the runtime path of the running application. Defaults to @app/runtime

Application structure example

|- index.ts
|
|- node_modules
|
|- public
|
|- app
|  |
|  |-- controllers
|      |
|      |-- user
|      |   |
|      |   |-- IndexController.ts
|      |   |-- OtherController.ts
|      |
|      |-- goods
|      |   |
|      |   |-- IndexController.ts
|      |   |-- OtherController.ts
|      |
|   -- views
|      |
|      |-- user
|      |   |
|      |   |-- index.html
|      |   |-- other.html
|      |
|   -- goods
|      |   |
|      |   |-- index.html
|      |   |-- other.html
|      |
|   -- modules
|      |
|      |-- actives
|      |   |
|      |   |-- controllers
|      |   |   |
|      |   |   |-- IndexController.ts
|      |   |
|      |   |-- views
|      |   |   |
|      |   |   |-- index.html
|      |   |
|      |
|   -- runtime
|