如何将javascript变量导出到节点js

时间:2016-04-08 18:23:13

标签: javascript node.js

我有一个调用javascript函数的html文件,可以从用户那里获得一个6位数的输入。

<html>
    <head>
        <script src="ho.js"></script>
        <h1>Sample</h1>
    </head>
    <body>
            <input type="tel" id="realOTP" placeholder="Enter Your OTP"  maxlength="6">
            <input type="submit" value="Use OTP" onclick="compute()">
    </body>
</html>

这是定义函数的ho.js javascript文件。

var a=10, arr=[];
var exports = module.exports = {};
function compute() {
    rOTP = document.getElementById('realOTP').value;
    if (rOTP.length == 0) {
        alert('Enter a value');
        return;
    };
    arr = String(rOTP).split("");
    console.log("Entered OTP -> " + arr);
    return arr;
}
    exports.array = compute.arr;//what should come here?
exports.r = a;
    console.log("a:" +a);
exports.fun =function(){
    console.log("in function");
    var mes = require("./ho").r;
    console.log("mes:"+mes);
    var mes2 = require("./ho").array;
    console.log("mes2:"+mes2);
}

是否可以将javascript函数的返回值(本例中为“arr”)导出到节点js exports函数,类似于全局变量a = 10。这是我通过浏览器获取“arr”值后调用的主节点文件。

hoh.js

var call = require("./ho");
console.log("hoh:" +call.r);
call.fun();

这是我运行hoh.js时得到的输出:

C:\Users\Balajee\Desktop\project\Ultro>node hoh.js
a:10
hoh:10
in function
mes:10
mes2:undefined

1 个答案:

答案 0 :(得分:0)

exports.arr = arr;

将导出数组。但是数组会在计算中重新分配。如果相反,compute()会改变数组,您将能够在导出的数组中访问其内容。

arr = String(rOTP).split("");更改为arr.push.apply(arr, String(rOTP).split(""));,以便计算机()改变而不是重新分配它。

或者,导出一个getter

或者,您可以导出一个getter,它允许您根据需要继续重新分配arr。此代码示例也可以使用ES6胖箭头语法编写;我只是假设你仅限于ES5。

exports.getArr = function() { return arr; }