Я создал два класса обслуживания. Ниже приведено определение класса ShellService.Как обмениваться данными между службами в nodejs
class ShellService {
create(data, params) {
if (Array.isArray(data)) {
return Promise.all(data.map(current => this.create(current)));
}
let hostname=params.query.hostname
let port = params.query.port
const id = _.uniqueId();
this.shells[id] = spawn('mongo', ['--host', hostname, '--port', port]);
return Promise.resolve({id});
}
...
}
module.exports = function() {
// Initialize our service with any options it requires
let service =new ShellService()
return service;
};
В своем методе создания он создает экземпляр оболочки и добавляет его в свой массив объектов оболочки. У меня есть еще один класс обслуживания отдыха и вы хотите получить доступ к объекту массива shells. Как я могу это сделать? Я пробовал ниже, но не работает:
const shellService = require('../shell-service')
class SocketService {
...
Я объявил SocketService
класс и требуют обслуживания оболочки. Но я не могу позвонить shellService.XXXX
в мой класс SocketService
. Что я должен сделать, чтобы достичь этого?
Вы хотите явно инициализировать класс 'shell-service'? или это хорошо, если вы можете просто получить доступ к его методу статически? – Sridhar
Я не хочу использовать его статически. Есть ли способ получить свой экземпляр в SocketService? –
'create' должен возвращать разные экземпляры, каждый раз, когда он вызывается. Только логика для создания такая же. Правильно ли я об этом? – Sridhar