gpt4 book ai didi

node.js - 如何在node.js中使用module.exports导出多个函数

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:02 26 4
gpt4 key购买 nike

我正在创建一个实用程序类来处理一些常见函数,以帮助减少模块中的代码复制/过去:我创建了一个导出模块。这里发生的只是导出一个包含三个函数的对象。

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);
});
});

目录结构是utility.js 位于根目录中,其中单元测试位于名为 test 的文件夹中。

每当我尝试导入实用程序模块时,该对象总是为空。console.log('###### ' + JSON.stringify(ut)); 生成 ###### {}

我过去导出过单独的函数,并且我认为一组函数只需要导出构造函数。

是否应该以不同的方式导出多个函数?

最佳答案

MDN 网络文档对您在 JSON.strigify() 中看到的行为提供了解释:

If undefined, a Function, or a Symbol is encountered during conversion it is either omitted (when it is found in an object) or censored to null (when it is found in an array).

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

编辑:澄清一下,我认为您正确导出了实用函数,但 JSON.stringify() 明确 promise 不打印函数。

关于node.js - 如何在node.js中使用module.exports导出多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54875637/

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