我正在为使用专有npm模块来建立连接并在大型机模拟器上执行操作(读取,写入和提交)的产品构建一些自定义插件。
我正在index.js文件中建立连接,并希望在调用它时将终端变量传递给单独的模块
index.js代码段
var terminal;
const mainframeTerminal =require(‘private_module’);
const accountDetailsModule =require('./src/accountDetails');
terminal = private_module.connect('11.11.11.1:789');
let screen = await terminal.status();
// expose module from index.js file so that it can be consumes in product
export.getAccountDetails = accountDetailsModule.getAccountDetails(terminal)
accountDetails.js
module.exports.getAccountDetails = async function(terminal){
//perform some operation with termianl var - passed from index file
return data;
}
我遇到错误 exports.getAccountDetails = accountDetailsModule.getAccountDetails不是函数。 我还需要传递数据输入,但暂时不需要, 如果我只需要传递任何输入,就想知道node.js函数将如何理解映射。
请输入一些信息,我是编码的新手。
答案 0 :(得分:0)
像这样
index.js
const mainframeTerminal =require('private_module');
const accountDetailsModule = require('./src/accountDetails');
const terminal = private_module.connect('11.11.11.1:789');
let screen = await terminal.status();
// expose module from index.js
exports = accountDetailsModule(terminal);
accountDetails.js
const getAccountDetails = async (terminal) => {
// perform some operation
return data;
}
exports = getAccountDetails;
在CommonJS中,模块只是分配变量的一种方法。因此,当您require('./src/accountDetails')
时在index.js中获得的内容恰好是您在accountDetails.js中导出的内容(getAccountDetails
的值,这是一个带有一个参数的异步函数)。
runMyCode.js
这是您可能如何调用代码...
const mainframeTerminal =require('private_module');
const accountDetailsModule = require('./src/accountDetails');
const terminal = private_module.connect('11.11.11.1:789');
let screen = await terminal.status();
// run the code a print the result to console
accountDetailsModule(terminal).then(console.log);