Что я делаю неправильно в экспорте моего модуля из main.js? - PullRequest
0 голосов
/ 19 апреля 2019

Изучение того, как разрабатывать модули Я пытаюсь научиться экспортировать один из main.js .На моем рендерере я могу правильно отправить его на main с:

renderer.js:

let _object = {
    foo: foo1,
    bar: bar1,
}
ipcRenderer.send('channel', _object)

in main.js Я могу получить это правильно:

ipcMain.on('channel', (e, res) => {
  console.log(JSON.stringify(res))
  console.log(typeof res)
})

однако, когда я экспортирую result из main.js и пытаюсь перенести его в другой файлЯ получаю undefined:

main.js:

const foobar = require('./foobar')

ipcMain.on('channel', (e, res) => {
  console.log(JSON.stringify(res))
  console.log(typeof res)

  module.exports.res = res
  foobar.testing()
})

foobar.js:

const res = require('./main')

module.exports = {
    testing: function(res) {
        console.log(`Attempting console.log test: ${res}`)
        console.log(res)
        console.log(JSON.stringify(res))
    }
}

конечный результат:

Attempting console.log test: undefined 
undefined
undefined

Я также пытался переопределить объект в main.js :

ipcMain.on('channel', (e, res) => {
  module.exports =  {
        foo: foo,
        bar: bar,
    }
  console.log(`Testing object ${res.foo}`)

  foobar.testing()
})

Мои исследования:

Что я делаю неправильно в моемэкспорт result в main.js , чтобы я мог использовать его в другом файле?

Редактировать:

Моя конечная цель - научиться уметьпозвонить res.foo в foobar.js .

1 Ответ

1 голос
/ 19 апреля 2019

Прежде всего, у вас есть аргумент res в вашей функции testing, который скрывает импорт.Во-вторых, весь импортированный объект res - это экспорт из main, который включает в себя res, который вам нужен - поэтому вы должны напечатать res.res вместо всего объекта.

Foobar.js:

const res = require('./main')

module.exports = {
    testing: function() {
        console.log(`Attempting console.log test: ${res.res}`)
        console.log(res.res)
        console.log(JSON.stringify(res.res))
    }
}

Последняя версия (где вы переназначаете module.exports) не будет работать, потому что foobar по-прежнему будет иметь исходный экспорт, который был пустым объектом.

...