fastserverexp v1.0.9
Documentacion y uso del server con express js
documentacion en npm : https://www.npmjs.com/package/fastserverexp
Pasos para la configuracion del fastserver
- se debe crear un archivo con nombre index.js
- en la raiz de tu espacio de trabajo crear una carpeta con nombre source dentro de esta deberas crear una sub-carpeta con nombre server
- dentro de la carpeta source/server/ crear un archivo con nombre server.js
dentro del insumo de la siguiente ruta source/server/server.js esta la clase que maneja todo el modulo de inicio del server y carga de los controladores de la aplicacion
en el archivo index.js que esta raiz de tu espacio de trabajo deberas configurar lo siguiente
// const Server = require('./server/server')
const compression = require('compression')
// modulo de nuestro server en expres js
const Server = require('fastserverexp')
const path = require ('path')
const pathApp = path.join(__dirname, '/source/collector');
const config = require('./config/config.app')
const apserver = new Server();
const routeApisRegister = [require('./config/config.apis.router'),compression]
const mongodb_connect = require("./connector/mongodb/connector.mongodb");
apserver.registerConnector("db", "mongodb", mongodb_connect.mongodb());
// inicializamos el fastserver
let port = 4000
let accessCors = {
validate : true,
list:['labdeveloper.com','labdeveloper.co']
}
apserver.start(port, routeApisRegister, accessCors, pathApp)
El inicializador de la aplicacion se le envian 2 parametros que son los siguientes, estos deben estar escritos en el siguiente orden
- puerto con el que Desplegaremos la aplicacion
- ruta de los apis
Uso de las apis
para poder crear las apis de tu proyecto deberas configurar lo siguiente en tu espacio de trabajo
- Crear una carpeta en la raiz de tu proyecto con nombre config dentro de esta estaran los config de nuestro proyecto
- Crear una archivo con el siguiente nombre config.apis.router.js puedes colocar el nombre de quieras siempre cuando este definido de la siguiente manera
// definimos nuestro modulo de express en este caso para el uso de los apis
const express = require('express')
const app = express();
// definimos la ruta donde estara nuestro api
const userSignupSigin = require('../source/webapi/user/api.user.sesion');
// hacemos uso de ese api en especifico ( lo publicamos )
app.use('/api/auth', userSignupSigin);
// exportamos el modulo de app
module.exports = app
Una vez configurado lo siguiente debemos crear el api que anteriormente definimos, el nombre del archivo del api puede ser el que usted quiera siempre y cuando use el siguiente formato para definir los apis
// Creamos un objeto de apis dentro colocara todos los metodos que tenga este api con su respectivo nombre
const optionsApisUser = [
// api para crear usuarios
api.post('/authentication/signup', controller['session'].signup),
// api para iniciar sesion con usuario
api.get('/authentication/signin', controller['session'].sigin)
]
// exportamos estos apis para poder hacerle uso desde el insumo de config que anteriormente creamos
module.exports = optionsApisUser
Este formato de creacion de apis se debe hacer siempre con cada nuevo api que usted quiera crear, el objeto de apis no puede estar vacio
El api debe estar definido en la carpeta /source/webapi/ de lo contrario dara error al momento que carguemos el aplicativo ya que esta carpeta sera en la que podremos definir todas nuestras apis ya que asi lo colocamos en el archivo de configuracion. puedes colocar las apuis en cualquier otra carpeta pero de ser asi debes definirlo en el archivo de configuracion porque si no dara error.
recuerda que el archivo de configuracion es el que usamos para registrar todas las apis en el proyecto.
Uso de los controladores
Estos archivos los usamos para colocar la parte logica del api, de esta manera tenemos las apis un poco mas limpia, cada controlador tendra asiganada la parte logica de un solo api con su respectivo metodo, por favor no mesclar los controladores para los otros metodos a menos que la logica de los mismo sea simple y legible
los controladores se deben definir de la siguiente manera
Primero debemos crear el archivo de configuracion que tendra las rutas de cada controlador con su respectivo nombre, el archivo de configuracion debe estar de la suguiente manera
// definimos cada controlador como si fuera un objeto el nombre y el valor es la ruta en donde usted lo definira
module.exports = {
session: require('../source/controllers/user/controller.session'),
}
Como ve este archivo de configuracion es un objeto, puede exportarlo como usted quiera siempre y cuando este sea un objeto cada valor de las propiedades sera la ruta de donde tine los controladores definidos, en este caso la ruta en donde definio el controlador es ../source/controllers/user/controller.session
los controladores puede crearlos de cualquier manera, yo les recomiendo crealos de la siguiente manera :
// la palabra export y seguido el nombre del controlador con sus respectivos parametros envueltos en un try catch, usted puede manejar los errores a su gusto
exports.sigin = async function (req, res, next) {
// Validate request parameters, queries using express-validator
try {
return res.status(200).json({ status: 200, message: 'test' });
} catch (e) {
return res.status(400).json({ status: 400, message: e.message });
}
}
Una vez definido los controladores para poder usar estos controladores en un api debe definirlos de la siguiente manera
api.post('/authentication/signup', controller['session'].signup),
En el archivo donde define las apis y realiza el llamdo de los controladores segun el metodo que quiera usted hace el llamdo de la palabra reservada controller en esta habra un objetos de controladores que ya anteriormente usted ya definio.