jumbojs

    0.3.1 • Public • Published

    JumboJS CLI and framework

    A CLI and framework called JumboJS. This package optimize time of creating express api core and middleware routes.

    Install JumboJS CLI

    $ npm i -g jumbojs

    Creating a app

    To create a new jumbo app type:

    $ jumbo new <appName> <appType> <appPort>

    App type is the type of aplication api or mvc, type 'mvc' to create a model view controller app or type 'api' to create a micro-service.

    The default app port is 8000.

    Starting your app

    To start your app type:

    cd <appName>
    $ npm install
    $ npm start

    And check in your browser "http://localhost:appPort/api".

    Do not want create a API use views and make a MVC project

    To create view in project type:

    $ jumbo view <viewName>

    and apply in your app.js to use views, like:

    const init = require('./mvc')(app);
     
    app.get('/', function (req, res) {
      res.render('index', { title: 'My jumbo pug page' });
    });

    and try this path "http://localhost:appPort/" without api endpoint.

    Creating a new app route

    To create new route in your app, you must to enter in app folder and type:

    $ jumbo route <routeName>

    And your route as created in "./src/routes/.js".

    Using JumboJS framework

    Databases

    MySQL

    Creating a mysql connection, making a query and close connection.

    const { databases } = require('jumbojs/framework');
    const { mysql } = databases;
     
    // instancing a connection
    const conn = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: '',
      database: 'myDatabaseName'
    });
     
    module.exports = {
      mysql: mysql,
      conn: conn
    }

    or use CLI to make this file for your

    $ jumbo database mysql

    now configure your options in createConnection method and make your model

    const { mysql, conn } = require('./mysql.conn.js');
     
    // making a query
    mysql.query(conn, 'SELECT * FROM users', (res) => {
      return console.log(res);
    });
     
    // clossing connection
    mysql.close(conn);

    Firebase

    Using firebase driver, create new project and get web sdk in Firebase Console.

    const { databases } = require('jumbojs/framework');
    const { firebase } = databases;
    const {
      fb,
      initiliaze,
      get,
      set,
      remove 
    = firebase;
     
    // your firebase sdk config object
    const myFireBaseSDK = require('./myFireBaseSDKFile');
     
    // init your firebase app
    const fbInit = initialize(fb, myFireBaseSDK);
     
    // set data in your real-time database
    set(fb, '/users', {
      1: {
        name: 'foo'
      }
    });
     
    // get your real-time database data
    get(fb, '/users', users => {
      return console.log(users);
      /*
        {
          1: {
            name: 'foo'
          }
        }
      */
    });
     
    // remove data from real-time database
    remove(fb, '/users');

    Controllers

    When you have create a model to use your database, try to create a controller.

    $ jumbo controller <controllerName>

    Set your controller name equals they model name, for User controller type user and the CLI make the first letter uppercase in the file.

    This file is created in './src/controllers' folder.

    THIS FILE IS A JAVASCRIPT CLASS "OBJECT"

    Utils

    Time

    How to get data timestamp???

    const { utils } = require('jumbojs/framework');
    const { now } = utils;
     
    console.log(now());
    /*
      returns a object
      {
        day,
        month,
        year,
        time: this string contains hour:mins:secs
      }
    */

    Request

    Make a request for another url.

    const { utils } = require('jumbojs/framework');
    const { request } = utils;
     
    // get request
    request({
      method: 'get',
      baseUrl: 'https://some-domain.com/api',
      url: '/users'
    }, response => {
      console.log(response);
    });
     
    // post request
    request({
      method: 'post',
      baseUrl: 'https://some-domain.com/api',
      url: '/user/create',
      data: {
        name: 'Otter',
        foo: 'JumboJS'
      }
    }, response => {
      console.log(response);
    });

    License

    MIT - see LICENSE

    Install

    npm i jumbojs

    DownloadsWeekly Downloads

    1

    Version

    0.3.1

    License

    MIT

    Unpacked Size

    22.1 kB

    Total Files

    29

    Last publish

    Collaborators

    • raisess