Skip to content

kuznetsovlv/httpapijs

Repository files navigation

httpapijs

Simple api for http server.

GitHub.

Progect on GitHub.

Install.

npm install httpapijs --save

or

npm install httpapijs --save-dev
  • Usage. Import ServerAPI form package:
  import ServerAPI from 'httpapijs';

Also you can import utilities getContentType and getStatusText:

  import { getContentType, getStatusText } from 'httpapijs';

or

  import ServerAPI, { getContentType, getStatusText } from 'httpapijs';

ServerAPI

  import ServerAPI from 'httpapijs';

ServerAPI - class of main server api. It may be costructed with two arguments:

  • {number} [port = 80] - listening port.
  • string} [root = __dirname] - root dirrectory of content.

ServerAPI.on - method to set handlers, adds start handler and handlers for request's types. It calls with two parameters:

  • {string} type - type of event. Available start event emits at server's starting and lowercased names of request's events.
  • {function} handler - event handler. All events but start get request and response objects as arguments, start event does not get any arguments.

You can set only one handler for each event. If you call on method with same event's name, only last handler will be set. But you can update it.

ServerAPI.up - method to fire server.

getContentType

  import { getContentType} from 'httpapijs';

getContentType returns default Content-Type header by mime. This method has only one argument:

  • {string} [mime = '.html'] - file's mime type.

getStatusText

Also you can import utilities getContentType and getStatusText:

  import { getContentType } from 'httpapijs';

getStatusText returns humanreadable status by it's code. It has argument:

  • {number | string} code - statuses code.

Example

  import ServerAPI, { getContentType, getStatusText } from './index';

const server = new ServerAPI(8084, __dirname);

server.on('start', () => console.log('HELLO!'));

server.on('get', (request, response) => {
  response.statusCode = 200;
  response.statusMessage = getStatusText(200);
  response.setHeader('Content-Type', getContentType('txt'));
  response.setHeader('Content-length', 'Hello!'.length);
  response.end('Hello!');
});

server.up();

License

MIT Copyright (c) 2017 Kuznetsov Leonid.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published