reqponse

    0.0.4 • Public • Published

    reqponse

    This module provides the class to combine request and response objects into a single entity - reqponse. On the one hand it parses request and makes the access to form data, url components, cookie and headers really easy. On the other hand reqponse contains some methods to make the most often actions with response.

    How to install

    Just type npm install reqponse and start using the module:

    'use strict';
    let http = require('http'),
        reqponse = require('reqponse');
     
    http.createServer((request, response) => {
        let $ = new reqponse.Reqponse(request, response);
        $.parse(error => {
            if (error) {
                $.status = 500;
                $.error(error).send();
            } else {
                /* Now you can use the instance of Reqponse class */
                let headerName = $.get.headerName || 'cookie',
                    headerValue = $.header.get(headerName);
     
                $.echo('name: ' + headerName + '\n');
                $.echo('value: ' + headerValue);
     
                $.header.set('Content-Type', 'text/plain');
                $.send();
            }
        });
    }).listen(80);

    Reqponse

    $ = new Reqponse(request, response)

    Constructor of Reqponse class returns a request-response object, so-called reqponse.

    returns $

    $.request and $.response

    These properties just store original request and response objects, passed in constructor.

    $.method

    This property is a string, containing the method's name of the request in upper case.

    $.status

    This property is a number, a status of the further response (by default is equal 200).

    $.url

    This property is an object, including parsed URL of the request:

    • original - it is the same as $.request.url;
    • parsed - it is the same as require('url').parse($.request.url);
    • pathname - it is the same as $.url.parsed.pathname;
    • splitted - it is the pathname, splitted by /.

    $.get or $.post and $.files

    To get access to form data you need to call $.parse method. It stores all fields in the property, named according with $.method. All files are saved to $.files variable.

    $.header

    This property is an instance of Header class (read below).

    $.cookie

    This property is an instance of Cookie class (read below).

    $.parse(callback, config)

    Parses form data and stores it in the reqponse object. Formidable module is used under the hood, config (optional) is passed into one. Callback gets only one parameter - occured error or null.

    returns $

    $.echo(text)

    This method adds text to the buffer.

    returns $

    $.clear()

    This method clears the buffer.

    returns $

    $.debug(anything1, anything2, ...)

    This method adds to the buffer debugging information about each argument (util.inspect uses). It is useful to debug your application in the browser.

    returns $

    $.error(error)

    This method adds to the buffer callstack of occured error. It is userful to catch errors in the browser.

    returns $

    $.send()

    This method does following:

    • sets header Set-Cookie, containing cookie from $.Cookie;
    • sets status for the response as $.status;
    • sets headers for the response from $.Header;
    • writes buffer in the response;
    • ends the response.

    returns $

    Header

    $.header = new Header(headers)

    The constructor of the Header class gets $.request.headers, parses and stores ones.

    returns $.header

    $.header.get(name)

    This method returns the value of a request-header with name. Remember, that name is lower case. If required header doesn't exist in the request, undefined is returned.

    returns string

    $.header.set(name, value)

    This method sets the response-header name to value. Case doesn't matter. Note that you don't need specify Set-Cookie header (it is done automatically).

    returns $.header

    $.header.toHeader()

    Returns an object, containing all headers specified for the response.

    returns object

    Cookie

    $.cookie = new Cookie(cookies)

    The constructor of the Cookie class gets Utils.splitIntoPairs($.request.headers.cookie, '; ') and stores ones.

    returns $.cookie

    $.cookie.get(name)

    This method returns the value of a request-cookie with name. If required cookie doesn't exist in the request, undefined is returned.

    returns string

    $.cookie.set(name, value, timeout, path, domain, secure, httponly)

    This method sets the response-cookie:

    • name (required) is a cookie's name.
    • value (required) is a cookie's value.
    • timeout (optional) is a cookie's lifetime. Cookie expires after timeout seconds (by default cookie lives only within a current session).
    • path (optional) is a cookie's path. By default it is equal /.
    • domain (optional) is a cookie's domain.
    • secure (optional) is a boolean flag, which says to set cookie only if HTTPS uses. It is false by default.
    • httponly (optional) is a boolean flag, which denies use cookie from javascript. It is false by default.

    returns $.cookie

    $.cookie.toString(name)

    Returns cookie with name as a string.

    returns string

    $.cookie.toHeader()

    Returns an object with a single property Set-Cookie, whose value contains all cookies for the response.

    returns object

    Utils

    splitIntoPairs(string, delim)

    This method splits the string by delim, then splits each substring by =. Left part is a key, right part is a value of a resulting object.

    returns object

    wrapDebugInfo(string)

    This method wraps the string for a beautiful display of debugging information.

    returns string

    Colors

    It is an array, containing colors of debugging messages. By default the value is: ['#DD0011', '#F17217', '#DAA520', '#5BA51E', '#009C9F', '#1453FF', '#8A2BE2']

    Install

    npm i reqponse

    DownloadsWeekly Downloads

    1

    Version

    0.0.4

    License

    GPLv3

    Last publish

    Collaborators

    • enet