Я создаю класс утилит для обработки некоторых из наших общих функций, которые помогают уменьшить количество копий / вставок кода в наших модулях: я создал модуль экспорта.Все, что здесь происходит, это экспорт объекта, который содержит три функции.
module.exports = {
//retrieve a secret object from the AWS Secrets Manager
//Parameter should be string value of the Secret ID
getSecretIdAsync : async (param) => {
return await new Promise((resolve, reject) => {
scrtmgr.getSecretValue({SecretId: param}, (err, data) => {
if(err){
reject(console.log('Error getting SecretId: ' + err, err.stack));
} else{
if('SecretString' in data)
return resolve(JSON.parse(data.SecretString));
}
});
});
},
//retrieves the AWS Paramter value from the AWS Paramter store
//param should be string value of parameter hierarchical id
getParameterValueFromStoreAsync : async (param) => {
return await new Promise((resolve, reject) => {
servmgr.getParameter({ Name: param}, (err, data) => {
if(err){
reject(console.log('Error getting parameter: ' + err, err.stack));
}
return resolve(data.Parameters.Value);
});
});
},
//retrieves the AWS Paramter "object" from the AWS Paramter store
//param should be string value of parameter hierarchical id
getParameterFromStoreAsync : async (param) => {
return await new Promise((resolve, reject) => {
servmgr.getParameter({ Name: param}, (err, data) => {
if(err){
reject(console.log('Error getting parameter: ' + err, err.stack));
}
return resolve(data.Parameters);
});
});
}
}
Всякий раз, когда я пытаюсь ссылаться на этот модуль (скажем, в моем модульном тесте я ссылаюсь на модуль как:
let chai = require('chai');
let ut = require('../utilities.js');
let expect = chai.expect;
let aws = require('aws-sdk-mock');
describe('get parameter value', ()=>{
it('resolves', (done)=>{
var result = aws.mock('SSM', 'putParameter' , {"Name": "someName", "Value": "someValue"} );
console.log('###### ' + JSON.stringify(ut));
//console.log(obj);
});
});
Структура каталогов: utilities.js находится в корне, где модульный тест находится в папке с именем test.
Всякий раз, когда я пытаюсь импортировать модуль утилит, объект всегда пуст. console.log('###### ' + JSON.stringify(ut));
генерирует ###### {}
В прошлом я экспортировал отдельные функции, и я подумал, что группа функций просто потребует экспорта конструктора.
Должно ли несколько функций экспортироваться различным образом?