cli for webapp development & deployment by nodejs
Reus.js is a webapp framework based on koa.js, which utilizes a useful consequence of the encapsulation principle. Developers are easily focused on implementations for production/business requirements, rather than the versions of dependencies or the scaffold a team project required.
Reus.js has the core consideration for enterprise situation. Dealing with multiple projects, an R&D manager usually needs a widely covered version control, such as scaffolds controlls, third party libraries/dependencies controlls, etc.. This problem can be solved by one simple step, add reus.js into the dependency list. It provides a whole lifecycle coverage for the project's development & deployment.
$ npm install -g reus.js
Node.js >= 8.9.0 required. (I do not test it in any node environment lower than that version. Someone may have a nice try O(∩_∩)O~~)
- Commands for Create/Launch/Build Your Project
- Process Management for Launch in DevMode
- Gulp Based Plugin Development
-
Initialization
$ reus create -t simple $ cd reus-simple-starter $ npm i
-
Create a Controller
const { Controller } = require('reus.js'); class HelloController extends Controller { async index() { const { ctx } = this; ctx.json({ data: 'hello from HelloController' }); } } module.exports = HelloController;
-
Create a Middleware
const { Middleware } = require('reus.js'); class LogMiddleware extends Middleware { async index() { const { ctx, next } = this; console.log(`[${new Date()}]${ctx.url}:${ctx.method}`); return next(); } } module.exports = LogMiddleware;
-
Build-in Methods
-
ctx.json
: Stringify your response -
ctx.http
: Send a request with request
-
-
How to run
project.config.json
{ "app": { "port": 5658 } }
src/routers.js
module.exports = [ { path: '/hello', method: 'get', controller: require('../controllers/hello') } ];
src/app.config.js
const logger = require('./middlewares/logger'); const routers = require('./routers'); module.exports = { routers, middlewares: [logger], swaggerYmlFile: "some-path-to-swagger-yaml-file", swaggerCdnUrl: "custom-swagger-cdnurl" };
- Run Dev Mode
$ reus launch . --mode dev
-
How to build
$ reus build .
-
How to deploy
$ reus launch .