Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    HTTPRequestpublic

    build status #HTTPRequest v0.1.1#

    A simple yet powerful HTTP request library inspired by jQuery and LSL written in Javascript for client(framework independent) and server(Node.js) Javascript.

    Setup##

    To set up HTTPRequest on your Node.js server use npm(case sensitive package name).

    npm install HTTPRequest
    

    If you want to use HTTPRequest on the client-side (browser), just include HTTPRequest.js into your page.

    <script type='text/javascript' src='HTTPRequest.js'></script>
    

    Example##

    First, you have to require the HTTPRequest module (if you're using it client-side, this isn't necessary).

    var HTTPRequest = require('HTTPRequest');
    
    HTTPRequest.get('get_test.php', function(status, headers, content)
    {
        console.log(status, headers, content);
    });

    Recaptcha - A small reCAPTCHA module I wrote that depends on this module.

    request##

    request(url, parameters, callback) A lower level function, but I hope you never really need to use it as post, get is a wrapper around it.

    stop requests##

    • stopID(id)
    • stopTag(tag)
    • stopAll()

    When a request is stopped, the callback isn't called for the request.

    post##

    post(url, data, callback, options)

    A url, data(object, can be empty also {}), callback are required. options is not required, but it's a object.

    get##

    get(url, callback, options) url and callback are required.

    options is not required, but it's a object.

    delete##

    del(url, callback, options)

    same as get

    put##

    put(url, data, callback, options)

    same as post

    encode##

    encode(url)

    takes a url and escapes it, then returns it.

    decode##

    encode(url)

    takes a decodeed url and Unencode's it, then returns it.

    options##

    *option names are NOT case sensitive.

    • QUERY - string or object - appends to the end of the url.
    • DATA - 'POST' or 'PUT' data string or object
    • DATATYPE - the expected content type. See content type section for more details. The value of this isn't case sensitive.
    • TAG - a tag to be used in processedCallback, newRequestCallback, also doesn't have to be unique. The defaultTag is untagged. You can override the default by HTTPRequest.defaultTag = 'TextHere';

    server side only options##

    • USERAGENT - string - Write your own user agent, default is node.js. This is a alias/shortcut insead of setting your own headers
    • HEADERS - An object containing your own defined headers.

    parameters##

    Everything as options, but also:

    METHOD - string - 'GET', 'POST', 'PUT' and 'DELETE', default is 'GET'

    DATATYPE##

    DATATYPE can be set as the type of content you expected from the server.

    • JSON - when set as json, callback contents will be a object of the JSON when valid JSON, null when invalid JSON.

    callback##

    status, headers, content

    • status - is an HTTP status code (like 404 or 200)
    • headers - is an object with the respone http headers
    • content - contains the requests response.

    Ajax stop and start callbacks

    function ajaxLoaderStart()
    {
        console.log('Started');
    }
     
    HTTPRequest.setAjaxStart(ajaxLoaderStart); //this call back is called when no pending HTTP requests exists.
     
    function ajaxLoaderStop()
    {
        console.log('Stopped');
    }
     
    HTTPRequest.setAjaxStop(ajaxLoaderStop); //this get's called when all the pending HTTP requests are finished.
     

    These are great for providing a loading spinner on the page.

    Processed ID Callback

    function processedID(tag, id)
    {
        console.log('processed: ' + tag + ' , ' + id);
    }
     
    HTTPRequest.setProcessedCallback(processedID);
     

    New Request Callback

    function newRequestID(tag, id)
    {
        console.log('new id: ' + tag + ' , ' + id);
    }
     
    HTTPRequest.setnewRequestCallback(newRequestID);
     

    credits##

    • trim , encode and encode functions are from php.js
    • parseJSON function is from jQuery v1.7.2, but does not require jQuery as it's inclued in the same namespace.
    • Major thanks to node-XMLHttpRequest for giving us a XMLHttpRequest Object, that really helps make this both client and server side.

    Keywords

    none

    install

    npm i HTTPRequest

    Downloadslast 7 days

    270

    version

    0.1.1

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar