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

Javascript 从main.js导出模块时我做错了什么?,javascript,node.js,module-export,Javascript,Node.js,Module Export,学习如何开发模块我试图学习如何从main.js导出一个模块。在我的渲染器上我可以通过以下方式将其正确发送到main: renderer.js: 在main.js中,我可以正确地获得以下信息: ipcMain.on('channel', (e, res) => { console.log(JSON.stringify(res)) console.log(typeof res) }) 但是,当我从main.js导出结果,并尝试将其放入另一个文件时,我得到一个未定义的: main.js

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

renderer.js:

在main.js中,我可以正确地获得以下信息:

ipcMain.on('channel', (e, res) => {
  console.log(JSON.stringify(res))
  console.log(typeof res)
})
但是,当我从main.js导出
结果
,并尝试将其放入另一个文件时,我得到一个
未定义的

main.js:

foobar.js:

最终结果:

Attempting console.log test: undefined 
undefined
undefined
我还尝试在main.js中重新定义对象:

我对参考文献的研究:

在main.js中导出
结果
,以便在其他文件中使用时,我犯了什么错误

编辑:
我的最终目标是学习如何在foobar.js中调用
res.foo

首先,您的
测试
函数中有一个参数
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
仍将具有原始导出,它是一个空对象。

首先,您要从参数打印
res
,在main.js中重新构造它的正确方法是什么?最好的方法是将
res
作为参数传递给
testing
,而不是使用导出,但是如果您特别想使用导出,您只需要从
testing
声明中删除该参数。但是我不认为这会有帮助,因为
require
语句将快照初始导出,因此您必须导出一个空对象并将
res
放在那里。那么main.js中的正确重写是什么,以便我可以在foobar.js中调用
res.foo
?您不允许更改
foobar
?然后只需执行
foobar.testing(res)
,因为您的导出不会以当前编写的方式执行任何操作。请随时提出更好的建议,但请解释原因,并继续学习。
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
ipcMain.on('channel', (e, res) => {
  module.exports =  {
        foo: foo,
        bar: bar,
    }
  console.log(`Testing object ${res.foo}`)

  foobar.testing()
})
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))
    }
}