Выставить несколько объектов через модуль с конструктором в nodejs - PullRequest
0 голосов
/ 01 октября 2018

Я создал модуль в nodejs, где я хочу также выставить его константы.Но этот конкретный модуль содержит зависимость, которая предоставляется во время построения, то есть внедрение зависимости.

это module1

const STORE_TYPE = {
  STORE1: 1,
  STORE2: 2
};

function service(dependency1) {
  this.dep = dependency1;
}

service.prototype.doSomething = function(param1, store) {
  if (STORE_TYPE.STORE1 == store) {
    return this.dep.get(param1);
  } else {
    return "something";
  }
};

module.exports = service;

Я использую здесь module1:

var dep = require('./dep');
var dep1 = new otherService(dep);
var service = require('./service')(dep1);

function getData() {
  return service.doSomething(id, /*this is module1 constant*/1);
}

Как мне ссылаться на константы module1, если module1 имеет конструктор.

Я не хочу добавлять отдельный метод только для создания service , так как вызываемый должен выполнить несколько шагов.

1 Ответ

0 голосов
/ 01 октября 2018

Попробуйте:

service.js

exports.STORE_TYPE = {
  STORE1: 1,
  STORE2: 2
};

exports.service = function service(dependency1) {
  this.dep = dependency1;
}

service.prototype.doSomething = function(param1, store) {
  if (STORE_TYPE.STORE1 == store) {
    return this.dep.get(param1);
  } else {
    return "something";
  }
};

Использование этого модуля

app.js

const service = require('./service').service;

const STORE_STYLE = require('./service').STORE_TYPE;
...