从index.js文件调用时如何传递模块输入

时间:2018-06-24 01:54:29

标签: javascript node.js node-modules

我正在为使用专有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函数将如何理解映射。

请输入一些信息,我是编码的新手。

1 个答案:

答案 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);