我从 main.js 导出模块时做错了什么?

What am I doing wrong in my module export from main.js?

学习如何开发模块 我正在尝试学习如何从 main.js 导出一个模块。在我的 renderer 上,我可以通过以下方式将其正确发送到 main

renderer.js:

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

main.js中我可以正确理解:

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

然而,当我从 main.js 导出 result 并尝试将其导入另一个文件时,我得到一个 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()
})

我的研究参考:

我在 main.js 中导出 result 时做错了什么,所以我可以在不同的文件中使用它?

编辑:

我的最终目标是学习如何在 foobar.js.

中调用 res.foo

首先,您的 testing 函数中有一个参数 res,它隐藏了导入。其次,导入的 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 仍将具有原始导出,这是一个空对象。