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

如何将javascript变量导出到节点js,javascript,node.js,Javascript,Node.js,我有一个html文件,它调用javascript函数从用户那里获取6位数的输入 <html> <head> <script src="ho.js"></script> <h1>Sample</h1> </head> <body> <input type="tel" id="realOTP" placeholder="

我有一个html文件,它调用javascript函数从用户那里获取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>
是否可以将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
将导出阵列。但是数组在计算中被重新分配。相反,如果compute()对数组进行变异,则可以访问导出数组中的内容

更改
arr=String(rOTP).split(“”)
arr.push.apply(arr,字符串(rOTP.split)(“”)
使computer()变异而不是重新分配

或者,导出一个getter

或者,您可以导出一个getter,该getter将允许您继续重新分配您想要的arr。这个代码示例也可以使用ES6胖箭头语法编写;不过,我只是假设您仅限于ES5

exports.getArr = function() { return arr; }
将导出阵列。但是数组在计算中被重新分配。相反,如果compute()对数组进行变异,则可以访问导出数组中的内容

更改
arr=String(rOTP).split(“”)
arr.push.apply(arr,字符串(rOTP.split)(“”)
使computer()变异而不是重新分配

或者,导出一个getter

或者,您可以导出一个getter,该getter将允许您继续重新分配您想要的arr。这个代码示例也可以使用ES6胖箭头语法编写;不过,我只是假设您仅限于ES5

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


你能试试exports.array=compute()
@JordanHendrix吗?看起来compute()应该由HTML中的submit按钮调用。这样导出compute的结果将不允许代码考虑对id为“realOTP”的输入的修改。我将得到DOM错误,因为compute是一个在浏览器上运行的Javascript函数。当我将其分配给运行在浏览器之外的节点时,将抛出类似C:\Users\Balajee\Desktop\project\Ultro\ho.js:4 rOTP=document.getElementById('realOTP')。value;^的错误参考错误:文档未定义我想我不太理解你的问题。您是否正在尝试将值发布到服务器或其他内容?我认为hoh.js应该是客户机上的另一个文件(我忽略了您正在尝试使用node运行它)Ok。你离得有点远,你所缺少的部分有点超出了这个问题的范围。基本上,您需要做的是设置一个节点服务器来接受数据,然后在您的客户机中,在计算完成后,您需要创建一个XMLHttpRequest并将数据发布到服务器。我建议你为每一个方面都找一个教程,并制作一个完整的例子。你能试试
exports.array=compute()
@JordanHendrix吗?看起来compute()应该由HTML中的submit按钮调用。这样导出compute的结果将不允许代码考虑对id为“realOTP”的输入的修改。我将得到DOM错误,因为compute是一个在浏览器上运行的Javascript函数。当我将其分配给运行在浏览器之外的节点时,将抛出类似C:\Users\Balajee\Desktop\project\Ultro\ho.js:4 rOTP=document.getElementById('realOTP')。value;^的错误参考错误:文档未定义我想我不太理解你的问题。您是否正在尝试将值发布到服务器或其他内容?我认为hoh.js应该是客户机上的另一个文件(我忽略了您正在尝试使用node运行它)Ok。你离得有点远,你所缺少的部分有点超出了这个问题的范围。基本上,您需要做的是设置一个节点服务器来接受数据,然后在您的客户机中,在计算完成后,您需要创建一个XMLHttpRequest并将数据发布到服务器。我建议你为每一个方面都找一个教程,并制作一个完整的例子。我已经尝试了你在代码中的编辑,但仍然无法得到“arr”的值。这是我的输出:C:\Users\Balajee\Desktop\project\Ultro>node hoh.js a:10 hoh:10函数mes:10 mes2:当我使用getArr时,我得到了mes2:undefinedRight。见我对你问题的评论。您是否正在尝试将值发布到服务器?在按下输入按钮后的某个时间,您似乎正在尝试从客户端访问值。确切地说@mrjohnsonengr,我将通过节点调用hoh.js从客户端访问“arr”的值,在从浏览器获得输入后,我尝试了在代码中进行编辑,但仍然无法获得“arr”的值。这是我的输出:C:\Users\Balajee\Desktop\project\Ultro>node hoh.js a:10 hoh:10函数mes:10 mes2:当我使用getArr时,我得到了mes2:undefinedRight。见我对你问题的评论。您是否正在尝试将值发布到服务器?在按下输入按钮后的某个时间,您似乎正在尝试从客户端访问值。确切地说@mrjohnsonengr,在从浏览器获得输入后,我将通过节点调用hoh.js从客户端访问“arr”的值
exports.getArr = function() { return arr; }