gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:48:05 26 4
gpt4 key购买 nike

学习如何开发模块我正在尝试学习如何从 main.js 导出模块。在我的渲染器上,我可以将其正确发送到ma​​in:

渲染器.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 导出结果并尝试将其导入另一个文件时,我得到一个未定义:

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 中导出结果时我做错了什么,以便我可以在不同的文件中使用它?

编辑:

我的最终目标是学习如何在 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仍将具有原始导出,这是一个空对象。

关于javascript - 我从 main.js 导出模块时做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com