Coder Social home page Coder Social logo

shoio's Introduction

shoio

Installing

npm install --save shoio

Basic project

const shoio = require('shoio')
const app = shoio()

app.configure({
    adapter: { mongo: require('mongoose') },
    viewsPath: './src/views'
})

app.routes.register([
    {
        resource: 'article',
        path: 'articles',
    }
])

app.modules.register({
    name: 'article',
    model: {
        adapter: 'mongo',
        schema: {
            title: 'string',
            content: 'string',
        }
    }
})

app.up(function (a) {
    console.log('Up in port', a)
})

Ao rodar esse projeto, com esse simples trecho de codigo, será gerado um CRUD disponibilizando rotas para realizar operações, sendo essas que serão mostradas no terminal da seguinte forma:

Spawning route: article#list GET /articles/
Spawning route: article#getById GET /articles/:id
Spawning route: article#create POST /articles/
Spawning route: article#update PUT /articles/:id
Spawning route: article#delete DELETE /articles/:id

Criando uma rota nesse exemplo

app.routes.register([
  ...
  {
    path: '/',
    method: 'get',
    action: 'article#hello_world'
  }
  ...
])

A ação é separada por duas partes:

  • 1: nome do módulo
  • 2: metodo para ser chamado do controller Sendo essas, juntas pelo '#' formando a propriamente dita, action.

Para essa rota funcionar é necessário existir dentro do controller uma action com o nome hello_world:

app.modules.register({
  name: 'users',
  ...
  controller: {
    hello_world(){
      return "Olá mundo!!!"
    }
  }
})

Pronto! foi criado uma rota em sua aplicação. Ao fazer uma request para o caminho raiz de sua aplicação http://localhost:3001/ irá ser retornado o texto Olá mundo!!!!

Sendo que no lugar desse retorno do texto pode ser utilizado:

  • Renderização de arquivos Pug por meio da função this.render('page', data)
  • Total suporte a retorno de JSON
  • Suporte a retorno de Promises, elas serão resolvidas por traz dos panos, fique tranquilo!

Todo

  • Possibilitar a configuração das rotas para o modulo no proprio modulo
  • Criar um ORM que possibilite a referencia entre as entidades utilizando has_many, has_one, belongs_to
  • Possibiliar o registro dos fields
  • Uma boa forma de validar os campos

shoio's People

Contributors

brendonmatos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.