@risecorejs-mongo/core

2.7.15 • Public • Published

Risecorejs - The Node.js Framework

WARNING: This repository is custom version of Risecorejs Framework - https://github.com/risecorejs

Setup

npm install -g @risecorejs/core
npm install -g nodemon

risecorejs init my-project

cd my-project

npm install

Note: Don't forget to set up your database for the next step!

Copy ".env.example" -> ".env" and set up the #DATABASE section.

If you passed the --exampleFiles or --ef flag, then add .env and .env.example to your file:

#JWT
JWT_SECRET_KEY=secretKey
JWT_EXPIRES_IN=24h

Don't forget to change the secret key!

Run the commands to run the migration and populate the database with initial data:

npx sequelize db:migrate
npx sequelize db:seed:all

To run the application, use the following commands:

npm run dev or npm run start

CLI

npx risecorejs --help
risecorejs <command> [options]

Commands:
  risecorejs init [folder]                                                          Init Risecorejs template
  risecorejs dev [port] [host] [multiprocessing] [multiprocessingWorkers]           Run server in live-reload mode
  risecorejs start [port] [host] [multiprocessing] [multiprocessingWorkers]         Run server
  risecorejs make:controller [entityName] [entityExtendedName]                      Creating a base controller
  risecorejs make:model [entityName]                                                Creating a base model
  risecorejs make:docs [entityName] [entityExtendedName]                            Creating a base docs
  risecorejs make:routes [entityExtendedName]                                       Creating a base routes
  risecorejs make:entity [entityName] [entityExtendedName]                          Creating a base entity
  risecorejs make:migrations                                                        Automatic creation of migrations    

Options:
      --help     Show help                                                          [boolean]
  -v, --version  Show version number                                                [boolean]

Directory structure

  • controllers
  • database:
    • joins
    • migrations
    • models
    • order-by
    • seeders
  • docs
  • middleware
  • routes
  • storage
  • structs

Config.js

module.exports = {
  global: {
    test: 123
  },
  
  server: {
    host: 'localhost', // default | ('localhost' || '0.0.0.0')
    port: 8000, // default
    multiprocessing: false, // default | if:true ? mode:multiprocessing : mode:singleProcess
    multiprocessingWorkers: null, // default
  },
  
  // Add your module aliases so they are always at hand
  moduleAlias: {
    '@some-folder': __dirname + '/directory/some-folder'
  },
  
  storage: true, // default
  
  structs: {
    setGlobal: true, // default
    enableAPI: true, // default,
    dir: __dirname + '/structs' // default
  },
  
  cron: {
    childProcess: true, // if:true ? mode:childProcess : mode:inside
    jobs: {
      '0 0 * * * *'() {
        console.log(123)
      }
    }
  },
  
  processes: {
    notifications: {
      vars: {
        filePath: __dirname + '/processes/notifications.js',
        notificationWorkers: env('NOTIFICATION_WORKERS', 3)
      },
      dev: {
        cmd: 'node {{ filePath }}'
      },
      prod: {
        cmd: 'pm2 start {{ filePath }} -i {{ notificationWorkers }}',
        await: true
      },
      default: {
        cmd: 'node {{ filePath }}'
      }
    }
  },
  
  validator: {
    locale: 'en' // default | 'ru'
  },
  
  router: {
    baseUrl: '/', // default
    routesPath: '/routes', // default
    apiDocs: {
      title: 'API-docs' // default
    }
  },
  
  middleware: {
    // docs: https://www.npmjs.com/package/express-rate-limit
    rateLimit: {
      windowMs: 5 * 60 * 1000, // default
      max: 1000 // default 
    },
    
    // docs: https://www.npmjs.com/package/cors#configuring-cors
    cors: {}, // default
    
    // Add your global middleware
    extend: () => [
      require('~/middleware/global/some-middleware'),
      // require('../middleware/global/some-middleware')
    ]
  },
  
  init(config) {
    // Will be executed before launching the application

    console.log('Hi, I am an initialization function')
  },
  
  master(config) {
    console.log('I am working in the wizard when multiprocessing is running')
  },
  
  start({ config, app, server }) {
    // Will be executed when the application starts

    // Calling a global variable
    console.log('Hello!', $test) // Hello 123
  }
}

Package Sidebar

Install

npm i @risecorejs-mongo/core

Weekly Downloads

77

Version

2.7.15

License

MIT

Unpacked Size

60.9 kB

Total Files

62

Last publish

Collaborators

  • vasyagymenyuk