/common-nodejs-tools

A javascript library with tools that helps developers during their developments using nodejs and express.

Primary LanguageJavaScriptMIT LicenseMIT

common-nodejs-tools

🚀 A common utility library for NodeJS

🏁 Content


Install

In your package.json > dependencies:

  "common-api": "git+https://github.com/grupo-a/common-nodejs-tools.git#<TAG_VERSION>"

You need to change <TAG_VERSION>. See all tags clicking here.


Environment Variables

  # Express
  PORT=3000

  # Logs
  LOG_INFO_ENABLE=true
  LOG_WARN_ENABLE=true
  LOG_ERROR_ENABLE=true
  LOG_AUDIT_ENABLE=true

  # Database
  DB_READ_HOST=localhost
  DB_WRITE_HOST=localhost
  DB_PORT=5432
  DB_DATABASE=database-example
  DB_USER=postgres
  DB_PASSWORD=postgres

How to Use

In your file.js, import the dependency and extract the common function that you want to use.

  const { database } = require('common-api');

Common Functions

Database

It's a function to use PostgreSQL and you need to set the environment variables shown on the previous section. PG is the dependency that we use to connecting host.

Note: We are used to using two types of instances: read and write. By the way, when you will use this function, remember to inform which of the options you wanna use.

Example:

  const { postgres } = require('common-api').database;
  const query   = "SELECT * FROM example WHERE id = $1";
  const values  = [1];
  await postgres.read.queryFirstOrNull(query, values);

Error

There are two models: HttpError and DbError. They are responsible for mount the default structure when an error is occurred.

Example:

  const { error } = require('common-api');
  throw new error.HttpError(message, httpStatusCode, businessStatusCode);

Express

To use express in your API, we recommend our common function. It's responsible to set default configs like: enable cors, format body, handle the error page (route not found), etc.

Note: The default port is 3000.

Example:

  const { express } = require('common-api');
  express.instance.get('/path', 'middlewareIfNecessary', controller.get);
  express.init();
  module.exports = express.instance;

Logger

There are some functions inside this module which we use either success or failure logs. They are important for debugging our API and register what's happening inside it.

Example:

  const { logger } = require('common-api');
  logger.info('Example console');
  logger.warn('Error inside function');

Request

When you need to do some request, we recommend to use this function. You just have to pass the options from your request like the example.

Example:

  const { request } = require('common-api');
  const options     = {
    uri     : `localhost`,
    method  : 'GET',
    headers : {}
  };
  const response = await request.handler(options);

Response

Each response from your API, you can use this standard function that receives the parameter res (from your express), body (body response) and HttpCode, in addition to setting up the structure to serve your client.

Example:

  const { response } = require('common-api');
  return response.success(res, body, 200);

Validator

It's a helper function that uses jsonschema and validade your received body.

Example:

  const { validator } = require('common-api');
  const changeSchema = {
    'id'  : '/MethodName',
    'type': 'object',
    'properties': {
      'variable' : {'type' : 'string'}
    },
    'required': ['variable'] // if is required
  };
  validator.validate(changeSchema, body);

Status

🚧 Open for contribuitions... 🚧