npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@kiwitools/kwt_entity

v1.0.11

Published

Create API REST backend with nodejs and mongoose connection.

Downloads

21

Readme

Kiwi Tools Web

Kiwi Tools Web

¿Para que sirve Kwt Entity?

Para crear un backend API REST rápido y sencillo detallando el modelo al sistema.

¿Qué tecnología utiliza?

El backend lo genera en Nodejs conectando con MongoDB (Moongose).

kwt - Entity - Instalación

npm i @kiwitools/kwt_entity
// index.js
const { kwtEntity } = require( '@kiwitools/kwt_entity' );

const kwte = new kwtEntity();

kwte.start();

Ejemplo creación API REST ( Trabajador / Grupo )

Vamos a crear un API de ejemplo. Las entidades a desarrollar serán dos: Trabajador y Grupo.

Los campos de Trabajador son 3: nombre, apellidos y Grupo.

El único campo para Grupo: nombre.

nodejs index.js

01 - Creación de entidad "Trabajador".

Seleccionamos "Crear entidad" y pulsaremos "Enter", nos pedirá un nombre para la entidad, la llamaremos: "Trabajador". A continuación nombre del campo. El primer campo será el "nombre" con tipo de dato "String" nos pedirá si queremos añadir más campos "y", el siguiente "apellidos" tipo "String" y por último el campo "Grupo", en este caso le dirémos de tipo "mongoose.Schema.Types.ObjectId" y cuando nos pregunte si queremos otro campo le dirémos "n". Ya tenemos creada la entidad Trabajador.

resumen

Entidad Trabajador

02 - Creación de la entidad "Grupo".

nodejs index.js

Seleccionamos "Crear entidad" y pulsaremos "Enter", nos pedirá un nombre para la entidad, la llamaremos: "Grupo". A continuación nombre del campo. El primer y último campo será "nombre" con tipo de dato "String" y cuando nos pregunte si queremos otro campo le dirémos "n". Ya tenemos creada la entidad Grupo.

resumen

Entidad Grupo

03 - Creación del Proyecto TrabajadorGrupo.

Nuevamente ejecutaremos la aplicación.

nodejs index.js

Seleccionamos "Crear proyecto" y pulsaremos "Enter", nos pedirá un nombre para el proyecto, lo llamaremos: "TrabajadorGrupo". A continuación nos aparecerá un listado con las entidades que hemos creado, con la barra espaciadora seleccionamos o quitamos selección, seleccionaremos las dos entidades que hemos creado anteriormente Trabajador y Grupo. Ya tenemos creado el proyecto.

resumen

Selección entidades

04 - Construcción del proyecto TrabajadorGrupo (build).

nodejs index.js

Seleccionamos "Construir proyecto" y pulsaremos "Enter", nos pedirá que proyecto queremos construir, seleccionaremos: "TrabajadorGrupo". Ya tenemos el proyecto contruido en ./build/TrabajadorGrupo :).

resumen

Construcción proyecto TrabajadorGrupo

05 - Ejecución del proyecto TrabajadorGrupo.

Nos situaremos en la raiz del proyecto en ./build/TrabajadorGrupo e instalaremos las dependencias.

cd build/TrabajadorGrupo
npm install

NOTA: Hay que destacar que este backend está pensado para una conexión MongoDb, así que si no hay corriendo un MongoDb en la máquina que se ejecuta no podría conectar por lo tanto no funciona la aplicación. De todas formas pongo el archivo docker-compose.yml por si quereís probarlo rápidamente.

version: "3.7"

services:
  db:
    container_name: mongodb
    image: mongo
    restart: always
    ports:
      - 27017:27017
    logging:
      driver: none
    stdin_open: false
    tty: false
    volumes:
      - dbdata:/data/db
    #environment:
    #  MONGO_INITDB_ROOT_USERNAME: root
    #  MONGO_INITDB_ROOT_PASSWORD: example
    networks:
      - default
 
volumes:
  dbdata:

En la raiz del proyecto hay un archivo llamado config.js donde se puede cambiar los datos de conexión. En un futuro se podrá construir para distintos motores de búsqueda.

const settings = {
    
    dbMongo:{
        url: 'mongodb://localhost:27017/kiwitools'
    },
    jwt:{
        secret: 'ghdyfg42182s122244996786783457634567347893457635675674565nvnbdsbh**nvsdvhdvhghgfdshpfkjf hnvmd.l-_.ñ,lñĺllllpj ---fffff01e09423f4e50a9fe080bdb1=78*.^aff8b16a582c21bfb43314a8609061e9448e62bbf92139=/8-:87',
        expires: 3600
    }
}

module.exports = settings;

Si ya tenemos MongoDb corriendo:

npm start

Corriendo el proyecto

06 - Creando usuario administrador Json Web Token [JWT].

Necesitaremos un usuario para poder atacar al API TrabajadorGrupo , por ahora sólo está implementado Json Web Token, aquí sólo nos pedirá nombre de usuario, email y password.

Seleccionamos "Crear usuario administrador (JWT)" y pulsaremos "Enter".

Crear usuario administrador

07 - Atacando al backend TrabajadorGrupo.

Por fin vamos a utilizar llamadas hacia la aplicación TrabajadorGrupo.

Lo primero necesitamos obtener el token de autenticación. Necesitaremos enviarle el nombre de usuario y la contraseña al endpoint /auth/token vía POST.

Request

Get token Request POST

Response

Get token Response

08 - Insertando un Grupo.

Vamos a crear un grupo en el endpoint /grupo vía POST. Ahora para poder autenticarnos y crear un Grupo necesitamos enviar el token en la cabecera "Bear Token" de la llamada.

Header Bear Token

Request

Create Grupo POST

Response

Create Grupo

Ya tenemos un grupo creado llamado "Desarrollo". En la respuesta de la llamada podemos apreciar que devuelve un dato interesante que es el "_id", es el identificador único de MongoDb.

09 - Creando el Trabajador en el grupo "Desarrollo".

Os podeís imaginar cómo crear el Trabajador en el grupo "Desarrollo". En el campo "Grupo" del trabajador enviaremos el "_id" que nos devolvío la llmada de creación del grupo.

Request

Create Trabajador POST

Response

Create Trabajador