I am trying to access an object exported from a module in two different modules. Logically in theese two different modules it must point to same object but it does not. Some how, i set the property of the object in a place and when i try to access this set property via a property of different object reference (but this property contains or should contain same reference to the object.) this property's reference does not reflect the changes. It's still the same. Let me make things clear with codes.
./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 };
Below is the code i first reference this languagesData object.
./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/languageCountryCode
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 };
When i set a non-existing id property of one of languagesData value of languagesTable.prodData i expect it to be set on languageCountryCodesData.language of prodData property of languageCountryCodesTable object. languageCountryCodesData also references languagesData. And prodData property of languagesTable also references languagesData. But it seems they don't. They reference two different objects. But shouldn't theese be referencing same object?
Please let me know if am missing something.
It was the character casing problem on require statement. I fixed the path with proper casing and it fixed...
Fixed
const { languageCountryCodesData } = require('../../data/frontEnd/languageCountryCodes');
To
const { languageCountryCodesData } = require('../../data/frontend/languageCountryCodes');
Changed 'frontEnd' to 'frontend'