学习如何开发模块我正在尝试学习如何从 main.js 中导出模块。在我的渲染器上,我可以使用以下方式将其正确发送到 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
。
答案 0 :(得分:1)
首先,您的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
仍将具有原始导出,这是一个空对象。