Javascript 将变量传递到节点需要设置吗?
在我的nodeJS应用程序中,我试图构建一个连接到我的外部服务的助手库 我想去Javascript 将变量传递到节点需要设置吗?,javascript,node.js,module,node-modules,Javascript,Node.js,Module,Node Modules,在我的nodeJS应用程序中,我试图构建一个连接到我的外部服务的助手库 我想去 const client = require('./myService')(serviceKey); 在应用程序中,我希望能够调用多个函数,例如: var healthcheckState = client.healthcheck(); var functionOneBool = client.someFunction('variable0','variable1'); 我发现了一
const client = require('./myService')(serviceKey);
在应用程序中,我希望能够调用多个函数,例如:
var healthcheckState = client.healthcheck();
var functionOneBool = client.someFunction('variable0','variable1');
我发现了一些关于如何做到这一点的帖子;
但我不知道如何适应它们
这是myService.js
module.exports = function(serviceKey) {
var modules = {};
modules.healthcheck = {
function(){
console.log('I have a heartbeat!');
}
};
return modules;
};
当我尝试跑步时:
const client = require('./myService')('abc123');
client.healthcheck();
我告诉过你client.healthcheck不是一个函数
我哪里出错了?为此场景设置单元测试不是一个理想的测试。在您的服务上放置setter函数怎么样
let client = require('./myService');
client.setServiceKey('abc123');
// or
client.setServiceKey(process.env.SERVICE_KEY);
let myReturnValue = client.myDifferenctCalls();
然后您可以设置一个nice、tokenValid或tokenNotValid单元测试来进行测试
下一步,仔细想想。您的require方法返回一个值,在您的示例中,它将模块作为myService.js中的对象返回,您还设置了一个“healthcheck”属性,您将其定义为对象。到目前为止,我们看到您将“modules”作为对象返回,而prop module.healthcheck作为对象。因此,modules.healthcheck作为对象不是[[callable]],因此不是函数。至少,到目前为止,您应该将module.healthcheck重新定义为函数表达式,而不是对象。因此,我已经给出了书面答案,但您需要对其进行编码。您的代码中存在语法错误。 您正在创建一个模块对象,而在模块对象中,您正在创建一个没有任何键的对象,并作为值使用 基本上你是在做:obj={healthcheck:{func};您需要它不是obj={healthcheck:func}
让我们大声想一想。1.require方法返回一个值,在您的示例中是它的返回模块,您在myService.js中将其设置为一个对象,您还设置了一个“healthcheck”属性,您将其定义为一个对象。到目前为止,我们看到您将“modules”作为对象返回,而module.healthcheck作为对象。所以你是modules.healthcheck作为一个对象是不可调用的,因此它不是一个函数。至少,到目前为止,您应该将module.healthcheck重新定义为函数表达式而不是对象。
module.exports = function(serviceKey) {
const modules = {};
modules.healthcheck = function(){
console.log('I have a heartbeat!');
}
return modules;
};