要求不同模块中的相同模块引用不同的对象

Requiring same module in different modules are referencing different objects

我正在尝试访问从两个不同模块中的模块导出的对象。从逻辑上讲,在这两个不同的模块中,它必须指向同一个对象,但事实并非如此。不知何故,我将对象的 属性 设置在一个地方,当我尝试通过不同对象引用的 属性 访问此集合 属性 时(但此 属性 包含或者应该包含对对象的相同引用。)此 属性 的引用不反映更改。还是一样。让我用代码把事情说清楚。

./startup/data/frontend/languages.js

const englishLanguage = {
    name:'English'
}

const turkishLanguage = {
    name:'Turkish'
}

const languagesData = {englishLanguage,turkishLanguage}

module.exports = {languagesData}

./startup/data/frontend/languageCountryCodes.js

const { languagesData } = require('./languages');

const languageCountryCodesData = {
    turkishTR: {
        language: languagesData.turkishLanguage,
        countryCode: 'TR'
    },
    englishEN: {
        language: languagesData.englishLanguage,
        countryCode: 'EN'
    },
    englishUS: {
        language: languagesData.englishLanguage,
        countryCode: 'US'
    }
};

module.exports = { languageCountryCodesData };

下面是我第一次引用此 languagesData 对象的代码。

./startup/tableDescriptor/frontend/language

const { languagesData } = require('../../data/frontend/languages');

const languagesTable = {
    tableName: 'languages',
    columns: [
        {
            name: 'id',
            type: 'SERIAL PRIMARY KEY',
            autoGenerated: true
        },
        {
            name: 'name',
            type: 'VARCHAR NOT NULL'
        }
    ],
    uniqueConstraints: [
        ['name']
    ],
    primaryKey: ['id'],
    prodData: languagesData
}

module.exports = { languagesTable };

./startup/tableDescriptor/frontend/language国家代码

const { languageCountryCodesData } = require('../../data/frontEnd/languageCountryCodes');
const { languagesTable } = require('./language');

const languageCountryCodesTable = {
    tableName: 'language_country_codes',
    columns: [
        {
            name: 'id',
            type: 'SERIAL PRIMARY KEY',
            autoGenerated: true
        },
        {
            name: 'languageId',
            type: 'INT NOT NULL'
        },
        {
            name: 'countryCode',
            type: 'VARCHAR NOT NULL'
        }
    ],
    primaryKey: ['id'],
    uniqueConstrarints: [
        ['countryCode']
    ],
    foreignKeys: [
        {
            key: 'languageId',
            table: languagesTable,
            reference: 'id',
            dataProperty: 'language'
        }
    ],
    prodData: languageCountryCodesData
};

module.exports = {  languageCountryCodesTable };

当我设置一个不存在的 id 属性 的其中一个 languagesData 值 languagesTable.prodData 我希望它被设置在 languageCountryCodesData.language of prodData 属性 of languageCountryCodesTable目的。 languageCountryCodesData 还引用 languagesData。而languagesTable的prodData属性也引用了languagesData。但他们似乎没有。它们引用两个不同的对象。但是这些不应该引用同一个对象吗?

如果遗漏了什么,请告诉我。

是require语句的字符大小写问题。我用合适的外壳修复了路径,它修复了...

固定

const { languageCountryCodesData } = require('../../data/frontEnd/languageCountryCodes');

const { languageCountryCodesData } = require('../../data/frontend/languageCountryCodes');

已将 'frontEnd' 更改为 'frontend'