9

I want to add or override some standard methods of Object, Function and Array (e.g., like suggested in this answer) in node.js application. How should I do all the "patches" in just one module so that it affects all my other modules?

Will it be enough if I do it in a module that is just require'd or it won't work because the two modules have different global namespaces so they have different Object?... Or should I run some initialisation function after require that makes all these "patches" working in this module too?

2 Answers 2

14
//require the util.js file 
require('./util.js');

var a = [];
a.doSomething();

in your "util.js" file:

//in your util.js file you don't have to write a module, just write your code...
Array.prototype.doSomething = function(){console.log("doSomething")};
Sign up to request clarification or add additional context in comments.

Comments

7

Each file loaded shares the same primordial objects like Object, Array, etc, unless run in a different vm Context, so requiring the file once in your initialization will make the changes everywhere.

3 Comments

Do you mean that it's even enough to require this module with "patches" once, only in my main module, and I don't need to require it in every module I want to have Object&co "patched"?
Yes, it's enough to require it just once. All modules in node share the same global scope. They have a different module scope, but the same global scope. So they have the same Object, Function, Array, etc.
It works for Function.prototype and Array.prototype, but when I try to do it with Object.prototype it throws TypeError: TypeError: Property description must be an object: undefined at Function.defineProperty (native) at Object.<anonymous> (/opt/nginx/html/dev.stockscompare/node_modules/express/lib/express.js:53:10)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.