在节点中使用全局模块

时间:2018-03-29 14:45:41

标签: node.js

我有一个带有一些模块的节点应用程序 我想以这种方式使用我的一个模块:

  • 初始化server.js中的模块(从npm调用的第一个文件)
  • 当从套接字传递请求时,在我的模块
  • 中设置请求配置
  • 在其他模块中使用带有请求配置的模块。

示例:

module.js

'use strict';

const Module = require('module');

let module = new Module({
    some_information
});

function test(message) {
    module.info(message);
}

function configureRequest(request) {
    module.configure({
        payload: {
            request: request
        }
    });
}

module.exports = {
    info,
    configureRequest
};

server.js(一小段代码)

let module = require('./src/module.js');

get_request.js

let module = require('./src/logger.js');
let another = require('./src/another.js');

scServer.on('connection', function (socket) {
     module.configureRequest(socket.request);
     module.info('test'); //inside it there is request 
     another.start();
});

another.js

let module = require('./src/logger.js');   
module.info('test'); //inside it there isn't request 

正如你可以看到另一个.js我再次需要我的全局模块所以请求没有设置,我不想要每次请求都可以传递到所有模块(我有很多很多模块)使用全局模块)

我该如何解决?

1 个答案:

答案 0 :(得分:1)

我通常使用consign模块在我的应用程序内自动加载我的模块。 https://github.com/jarradseers/consign