gpt4 book ai didi

javascript - 在终端中的js文件之间传递变量...

转载 作者:行者123 更新时间:2023-12-01 02:48:45 26 4
gpt4 key购买 nike

首先,是的,我知道这个问题之前已经被问过,但我仍然不知道如何让它发挥作用。我相信问题是,我在 Mac 终端上通过 node.js 单独运行文件,有点像应用程序。

这是交易。我有一个文件 bitt1.js,其中包含 var mid = 293.03;

在我的另一个文件 otherFile.js 中,我有一个 if, else 语句,具体取决于变量 mid (位于 bitt1.js 中):

if (mid <= 290) { 
trade = true;
} else {
trade = false; }

问题是,在终端中,我首先运行 bitt1.js,然后运行 ​​otherFile.js。这使得我无法从 bitt1.js 接收 mid 变量,并且它显示为未定义。

如何解决这个问题?我只发现在 html 等中使用的东西,其中变量始终“可用”。

我是 JS 的新手,所以我说的一些内容可能是不正确的......而且我也可能只是愚蠢,答案是显而易见的,但请帮助我......我考虑过创建一个 JSON 文件并使用其他两个文件从中写入/读取数据,但我觉得有更好的方法......

谢谢!

最佳答案

如果您不想修改变量的值,开发者 NodeJS 的代码就可以工作 - 如果您只想共享变量的初始值,它就可以完美工作。

但是,如果您打算在 bitt1.js 运行时执行期间改变 mid 的值并希望使用那个值,也许您可以使用 Unix 管道将其值插入到 bitt1.js 的标准输入中。

例如

// bitt1.js
var mid = 299;
console.log("<mid>%d</mid>", mid); // this is piped to stdin

// otherFile.js
var stdin = process.openStdin();
var data = "";
stdin.on('data', function(chunk) {
data += chunk;
});
stdin.on('end', function() {
data.match(/<mid>([\s\S]+)<\/mid>/i);
var mid = +data.match[1];
console.log(mid);
});

然后运行:node bitt1.js | Node otherFile.js

将从 otherFile.js 中打印 299

不过,这是一个粗略的解决方案:它应该需要对匹配表达式进行一些未定义的检查,当然管道不允许您将任何内容直接打印到 bitt1.js 文件中的控制台 -您必须重新打印 otherFile.js 中的所有内容,这会导致重复的代码。

但这可能是一个适合您的解决方案,一切都取决于您的要求!希望这会有所帮助。

关于javascript - 在终端中的js文件之间传递变量...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47107886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com