Nodejs requier () method

  node.js, question

When using the eventproxy plug-in,
Because I call and listen across pages,
demo
A.js

var eventproxy = require('eventproxy')
 var ep = new eventproxy();
 
 ep.on('test',function(data){
 console.log(data)
 })

b.js

var eventproxy = require('eventproxy')
 var ep = new eventproxy();
 
 ep.emit('test',"abc")

In the process of running, ep.on was unable to print its value, guessing that ep was not the same object

So use require to wrap it up

eventproxy.js

var eventproxy = require('eventproxy')
 var ep = new eventproxy();
 module.exports = ep;

A.js

var ep = require('../eventproxy')
 
 //... The code here is the same as above.

b.js

var ep = require('../eventproxy')
 
 //... The code here is the same as above.
 
 ep.on(funciton(data){
 //found that the value of data already exists
 })

PS: Because I nodejs, the foundation is not very good, the project used, not slowly accumulated learning.
So I would like to ask you:
Is the require () function loaded once? It means, is it similar to a static instansee instance, if the load is completed, it will be returned directly and will not be loaded again

From the experiment, the require () function is a load, but it is not sure, so please ask everyone, thank you!
In other words, I want to know the loading mechanism of the require () function.

Require function only loads the module once ~ ~