Я новичок в node.js. У меня есть следующий код
module aws.js
....
const awssvc = { dynamoQuery }
module.exports = { awssvc }
module A.js
const { awssvc } = require( ./index )
....
module.export = { a }
module B.js
const { awssvc } = require( ./index )
....
module.export = { b }
index.js
const { awssvc } = require('./aws');
const { a } = require('./A');
const { b} = require('./B');
module.exports = { awssvc, a, b}
В A.js
при выполнении awssvc.dynamoQuery я получил TypeError: Cannot read property 'dynamoQuery' of undefined.
Что я пропустил?
Или что должно или не должно идти в index.js?
У меня есть = в моем реальном коде. только что отредактировал пост. Прости





Убедитесь, что у вас есть знаки равенства для заданий деконструкции
const { awssvc } require( ./index ) должно быть const { awssvc } = require( ./index )
Также замените module.export { a } на module.exports = { a }
Также похоже, что вы пытаетесь импортировать awssvc из файла index.js, это должно требоваться от aws.js, поэтому в модуле A.js const { awssvc } = require(./index) должно быть const { awssvc } = require ('./aws.js')
Я изменил в модуле A.js с const { awssvc } = require(./index) на const { awssvc } = require ('./aws.js'). и это сработало. Можете ли вы помочь объяснить, почему я не могу требовать от index.js?
То, что у вас было раньше, это циклическая зависимость, модуль A.js требует индекса, но для индекса также требуется A.js, эта почта немного подробнее рассказывает об этом.
Похоже, после деконструкции вам не хватает знака равенства,
const { awssvc } require( ./index )должно бытьconst { awssvc } = require( ./index ). То же самое касаетсяmodule.export { a }должно бытьmodule.exports = { a }