Customize SUCCESS method

Mon Jul 17 2017 08:51:55 GMT+0200 (CEST), Peter Širka

Customize SUCCESS() method

The SUCCESS() method is the most used method in my Total.js applications. And few developers know that the output of this method can be changed to fit your needs.

How to modify it?

  • create a definition file called overrides.js
global.SUCCESS = function(success, value) {

    // Check if the "success" variable is a function
    if (typeof(success) === 'function') {
        return function(err, value) {
            success(err, SUCCESS(err, value));
        };
    }

    var err;

    if (success instanceof Error) {
        // Is "success" Error?
        err = success.toString();
        success = false;
    } else if (success instanceof ErrorBuilder) {
        // Maybe "success" is ErrorBuilder instance
        if (success.hasError()) {
            err = success.output();
            success = false;
        } else
            success = true;
    } else if (success == null)
        success = true;

    if (err)
        return { error: err };
    else if (success)
        return { ok: true };
    else
        return { error: 'Repeat your operation.' };
};

Usage examples:

console.log(SUCCESS(true));
// Output: { ok: true }

console.log(SUCCESS(false));
// Output: { error: 'Repeat your operation.' }

console.log(SUCCESS(false));
// Output: { error: 'Error: A bug' }

console.log(SUCCESS(new ErrorBuilder().push('', 'A bug')));
// Output: { error: [ { name: '', error: 'A bug', path: undefined, index: undefined } ] }

// the real purpose is to use it as a response in a controller
function some_controller() {
    this.json(SUCCESS(true));
}

Tags

Follow us

Latest blogs
Flow v5.1
Thu Jun 28 2018 19:22:41 GMT+0200 (CEST)
Total.js Dashboard v6.0
Mon Apr 23 2018 16:05:59 GMT+0200 (CEST)
Flow v5.0.0
Mon Apr 16 2018 12:32:11 GMT+0200 (CEST)
REST Azure DocumentDB in Node.js / Total.js
Mon Mar 26 2018 09:38:41 GMT+0200 (CEST)
How do I transform ErrorBuilder output?
Mon Jan 29 2018 09:22:49 GMT+0100 (CET)

Latest comments
Not only for Total.js. You can communicate with different websocket servers.
Peter Širka
Mon Apr 23 2018 20:08:20 GMT+0200 (CEST)
hellow every one
umar
Sun Apr 22 2018 10:05:35 GMT+0200 (CEST)
hehehshshshshdhsd
Amaury
Sat Mar 24 2018 19:46:54 GMT+0100 (CET)
asdasd
getrgerg
Tue Mar 20 2018 15:07:31 GMT+0100 (CET)
Is WEBSOCKETCLIENT only for internal ws connections between totaljs apps?
Stelios Stephanua
Fri Mar 16 2018 06:04:22 GMT+0100 (CET)
Total.js is amazing! ;)
Leonardo Hessel
Tue Dec 19 2017 19:51:15 GMT+0100 (CET)
It's easy, just set e.g. `res.status = 404`.
Peter
Thu Nov 16 2017 07:54:11 GMT+0100 (CET)
Yes, it's valid.
Peter
Thu Nov 16 2017 07:53:06 GMT+0100 (CET)
How do we set the status code in custome middleware?
Nabeel
Mon Oct 02 2017 10:31:40 GMT+0200 (CEST)
Node... Awesome applications.
oscar
Thu Aug 31 2017 02:21:59 GMT+0200 (CEST)
Awesome!
Tema
Wed May 10 2017 06:33:13 GMT+0200 (CEST)