All Projects → EvaEngine → EvaEngine.js

EvaEngine / EvaEngine.js

Licence: MIT License
A micro service development engine for node.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to EvaEngine.js

Malagu
Malagu is a Serverless First, component-based, platform-independent, progressive application framework based on TypeScript.
Stars: ✭ 184 (+493.55%)
Mutual labels:  orm, microservice, dependency-injection
Sequelize Auto
Automatically generate bare sequelize models from your database.
Stars: ✭ 2,494 (+7945.16%)
Mutual labels:  orm, sequelize
Asyncorm
Fully Async ORM inspired in django's
Stars: ✭ 182 (+487.1%)
Mutual labels:  orm, async-await
node-express-clean-architecture
A modular folder structure for developing highly scalable and maintainable APIs in nodejs using express.
Stars: ✭ 41 (+32.26%)
Mutual labels:  dependency-injection, sequelize
Sequelize Ui
Browser-based GUI for previewing and generating Sequelize project files.
Stars: ✭ 142 (+358.06%)
Mutual labels:  orm, sequelize
Sequelize Typescript
Decorators and some other features for sequelize
Stars: ✭ 2,200 (+6996.77%)
Mutual labels:  orm, sequelize
Quickperf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
Stars: ✭ 231 (+645.16%)
Mutual labels:  orm, microservice
Jplusone
Tool for automatic detection and asserting "N+1 SELECT problem" occurences in JPA based Spring Boot Java applications and finding origin of JPA issued SQL statements in general
Stars: ✭ 91 (+193.55%)
Mutual labels:  orm, microservice
granitic
Web/micro-services and IoC framework for Golang developers
Stars: ✭ 32 (+3.23%)
Mutual labels:  microservice, dependency-injection
lifeline-rs
A dependency injection library for message-based applications
Stars: ✭ 32 (+3.23%)
Mutual labels:  dependency-injection, async-await
framework
The target of this framework is to help in all the needs of a full featured API REST, from top to bottom, and at the same time having the best possible performance and security.
Stars: ✭ 88 (+183.87%)
Mutual labels:  dependency-injection, swagger
Gf Cli
GoFrame Command Line Interface, which is your helpmate for building GoFrame application with convenience.
Stars: ✭ 143 (+361.29%)
Mutual labels:  orm, swagger
Nestjs Sequelize Jwt
Nest + Sequelize + jwt
Stars: ✭ 127 (+309.68%)
Mutual labels:  orm, sequelize
Nestjs Graphql
nest-js starter which implement graphql module
Stars: ✭ 111 (+258.06%)
Mutual labels:  orm, sequelize
silky
The Silky framework is designed to help developers quickly build a microservice development framework through simple code and configuration under the .net platform.
Stars: ✭ 146 (+370.97%)
Mutual labels:  microservice, swagger
Express Starter
It's a hackathon-starter fork, but designed to use PostgreSQL by default (or MySQL)
Stars: ✭ 215 (+593.55%)
Mutual labels:  orm, sequelize
Butterfly
🔥 蝴蝶--【简单】【稳定】【好用】的 Python web 框架🦋 除 Python 2.7,无其他依赖; 🦋 butterfly 是一个 RPC 风格 web 框架,同时也是微服务框架,自带消息队列通信机制实现分布式
Stars: ✭ 82 (+164.52%)
Mutual labels:  orm, microservice
Sequelize
Sequelize module for Nest framework (node.js) 🍈
Stars: ✭ 88 (+183.87%)
Mutual labels:  orm, sequelize
ahobsu-node-backend
🌈 MOTI ! Make Own True Identity ⭐️ 유니큐와 유초코파이 노드로 탈주하다😎
Stars: ✭ 16 (-48.39%)
Mutual labels:  swagger, sequelize
sequelize-adapter
Sequelize adapter for Casbin
Stars: ✭ 51 (+64.52%)
Mutual labels:  orm, sequelize

EvaEngine For NodeJS

NPM version Build Status Dependencies Status codecov npm License

A micro service development engine for NodeJS.

  • Full DI support (Injected by ES7 decorators as well)
  • ES7 async & await support
  • CLI mode support (easily convert to schedules)
  • Better exceptions design
  • ORM support (Based on Sequelize)
  • Quick test by mocking request & response
  • Builtin cache layer
  • Builtin session / token authentications
  • Http client with fully debugging log
  • Distributed tracing log support (Zipkin compatible)
  • API document generator

Quick Start

Clone this skeleton project to quick start:

EvaSkeleton.js

Run as web server

import { EvaEngine } from 'evaengine';

const engine = new EvaEngine({
  projectRoot: `${__dirname}/..`,
  port: 3000
});

engine.bootstrap();
engine.use('/', (req, res) => {
  res.json({ hello: 'world' });
});
engine.run();

Then visit http://localhost:3000 to view API.

Run as CLI

import { EvaEngine } from 'evaengine';
import * as UserCommands from './commands/user';
const engine = new EvaEngine({
  projectRoot: `${__dirname}/..`
}, 'cli');
engine.registerCommands(UserCommands);
(async() => {
    await engine.runCLI();
})();

Run as Cron Job

import { EvaEngine } from 'evaengine';
import * as HelloWorldCommands from './commands/hello_world';

const engine = new EvaEngine({
  projectRoot: `${__dirname}/..`
}, 'cli');
engine.registerCommands([
  HelloWorldCommands
]);

engine.runCrontab('0/10 * * * * *', 'hello:world --id=EvaEngine');

Swagger Support

Process as follow:

  • ES7 Files =(Babel)=>
  • ES5 Files =(acorn)=>
  • AST =(filter)=>
  • Annotations =(doctrine)=>
  • JsDocs =(convert)=>
  • Fragments + EvaEngine Exceptions + Sequelize Models =(Merge & Compile)=>
  • Swagger Specification JSON File

Debug with Projects

cd EvaNode
npm link
cd your_project
npm link evaengine

Global Environment Variables

  • NODE_ENV
  • PORT
  • LOG_LEVEL
  • CLI_NAME
  • MAX_REQUEST_DEBUG_BODY
  • SEQUELIZE_REPLICATION_CONFIG_KEY : change sequelize replication config key

Generate Entities

./node_modules/.bin/engine make:entity
./node_modules/.bin/engine make:dbview

Import eslint with airbnb code standard for Webstorm

WebStorm > Preferences > Editor > Code Style > JavaScript > Scheme > Import Scheme > Choose airbnb_code_style.xml under this project

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].