Skazka

Skazka

  • Server
  • Examples
  • Github
  • Blog

›Start working

Introduction

  • Server

Start working

  • Server Init
  • Server Request
  • Server Response
  • Server Error Handler
  • Server Logger
  • Server Cookies Parser
  • Server Helmet

Running server

  • Server HTTP(S)

API

  • Server GraphQL
  • Server Router
  • Server Body Parser
  • Server CORS
  • Server Method Override
  • Server Virtual Host
  • Server Chaos

Database

  • Server Mongoose
  • Server MySQL
  • Server PostgreSQL
  • Server Redis

Static files

  • Server Index
  • Server Static
  • Server SPA

Creating a new modules

  • Server Module Builder
  • Server Express Wrapper

Server Error Handler

Simple 404/500 error handler.

How to install

npm i @skazka/server @skazka/server-error

With yarn:

yarn add @skazka/server @skazka/server-error

Optionally you can add http server, logger, router, request and response:

npm i @skazka/server-http @skazka/server-router @skazka/server-logger @skazka/server-request @skazka/server-response

With yarn:

yarn add @skazka/server-http @skazka/server-router @skazka/server-logger @skazka/server-request @skazka/server-response

How to use

const App = require('@skazka/server');
const Router = require('@skazka/server-router');
        
const error = require('@skazka/server-error');
const logger = require('@skazka/server-logger');

const request = require('@skazka/server-request');
const response = require('@skazka/server-response');
        
const server = require('@skazka/server-http');
        
const app = new App();
const router = new Router();
        
app.all([
  error(),
  logger(),
  request(),
  response(),
]);
    
app.then(async (ctx) => {
  // code for each request
});
    
router.get('/data').then(async (ctx) => {
  return ctx.response('data'); 
});
        
app.then(router.resolve());
        
server.createHttpServer(app);

Config

JSON request

To set application/json Content-Type header for each response:

app.all([
  // res.setHeader('Content-Type', 'application/json')
  error({ isJSON: true }),
]);

Hide user error (404)

If you have own user error handler, you can disable it:

app.all([
  error({ hasUserError: false }),
]);

Hide server error (500)

If you have own error handler, you can disable it:

app.all([
  error({ hasServerError: false }),
]);

Custom error handlers

To add custom user error handler for 404 error you need to add last app.then and finish response:

// 404 error handler
app.then(async (ctx) => {
  return ctx.response('Not Found', 404);
  
  // Or
  // return ctx.json({ message: 'Not Found' }, 404);
  
  // Or
  // ctx.res.statusCode = 404;
  // ctx.res.end('Not Found');
});

To add app error handler for 500 error you need to add app.catch:

// 500 error handler
app.catch(async (err, ctx) => {
  return ctx.response('Internal Server Error', 500);
  
  // Or
  // return ctx.json({ message: 'Internal Server Error' }, 500);
   
  // Or
  // ctx.res.statusCode = 500;
  // ctx.res.end('Internal Server Error');
});
Last updated by EvheniyBystrov
← Server ResponseServer Logger →
  • How to install
  • How to use
  • Config
    • JSON request
    • Hide user error (404)
    • Hide server error (500)
  • Custom error handlers
Copyright © 2019 SkazkaJS