Javascript 在js文件之间传递变量。。。在终点站

Javascript 在js文件之间传递变量。。。在终点站,javascript,node.js,terminal,Javascript,Node.js,Terminal,首先,是的,我知道以前有人问过这个问题,但我仍然不知道如何让它起作用。我认为问题在于,我在Mac终端上通过node.js单独运行文件,类似于应用程序 这是交易。我有一个文件bitt1.js,它具有var mid=293.03 在我的另一个文件otherFile.js中,我有一个if,else语句,具体取决于变量mid(在bitt1.js中): if(midnode.js)允许导入和导出 假设bitt1.js具有: var mid = 299 console.log(mid) // Here

首先,是的,我知道以前有人问过这个问题,但我仍然不知道如何让它起作用。我认为问题在于,我在Mac终端上通过node.js单独运行文件,类似于应用程序

这是交易。我有一个文件bitt1.js,它具有
var mid=293.03

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


if(midnode.js)允许导入和导出

假设bitt1.js具有:

var mid = 299

console.log(mid)

// Here is where you export the desired value
//export default mid
module.exports.mid = mid
然后,在otherFile.js中

// you import the value from bitt1.js
var mid = require('./bitt1')

console.log(mid) //Outputs 299
就这样


编辑:更新的答案

node.js允许导入和导出

假设bitt1.js具有:

var mid = 299

console.log(mid)

// Here is where you export the desired value
//export default mid
module.exports.mid = mid
然后,在otherFile.js中

// you import the value from bitt1.js
var mid = require('./bitt1')

console.log(mid) //Outputs 299
就这样


编辑:更新的答案

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

但是,如果您打算在运行时执行
bitt1.js
时对
mid
的值进行变异,并希望使用该值,那么您可以使用Unix管道将其值插入
bitt1.js
的stdin中

例如

//bitt1.js
var-mid=299;
console.log(“%d”,mid);//这是通过管道传输到stdin的
//otherFile.js
var stdin=process.openStdin();
var数据=”;
stdin.on('data',函数(块){
数据+=块;
});
stdin.on('end',function(){
data.match(/([\s\s]+)/i);
var mid=+data.match[1];
控制台日志(mid);
});
然后运行:
node bitt1.js | node otherFile.js

将从otherFile.js中打印
299

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


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

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

但是,如果您打算在运行时执行
bitt1.js
时对
mid
的值进行变异,并希望使用该值,那么您可以使用Unix管道将其值插入
bitt1.js
的stdin中

例如

//bitt1.js
var-mid=299;
console.log(“%d”,mid);//这是通过管道传输到stdin的
//otherFile.js
var stdin=process.openStdin();
var数据=”;
stdin.on('data',函数(块){
数据+=块;
});
stdin.on('end',function(){
data.match(/([\s\s]+)/i);
var mid=+data.match[1];
控制台日志(mid);
});
然后运行:
node bitt1.js | node otherFile.js

将从otherFile.js中打印
299

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


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

为什么不先实施NAIVE解决方案?从JSON文件写入和读取是一个非常有效的解决方案(直到您有多个程序试图同时编辑它).你为什么不想用这种方式实现它呢?我可以,我只是在为这个概念挣扎,因为我对这个概念还不熟悉,我想在开始之前看看是否有其他的修复方法,你们都帮了我!不过我也会致力于JSON实现,这是一个很好的措施。再次感谢!@JonathanBrooksIf我要写infor对于json,我会像fs.appendFile那样创建一个数组吗?您有什么建议吗?fs.appendFile应该可以工作!只要确保您使用
json将json对象转换为字符串。stringify
first为什么不先实现NAIVE解决方案?从json文件写入和读取是一个非常有效的解决方案(直到有多个程序试图同时编辑).你为什么不想用这种方式实现它呢?我可以,我只是在为这个概念挣扎,因为我对这个概念还不熟悉,我想在开始之前看看是否有其他的修复方法,你们都帮了我!不过我也会致力于JSON实现,这是一个很好的措施。再次感谢!@JonathanBrooksIf我要写infor关于json,我会做一些类似于fs.appendFile的事情,然后创建一个数组吗?你有什么建议吗?fs.appendFile应该可以很好地工作!只要确保你使用
json.stringify
firstcleer solution.cleer solution将json对象转换为字符串。我必须诚实地说,在编码了一点之后,我使用了大量的代码哈哈。非常感谢!Don不要害怕接受它作为回答,我的朋友。干杯!我必须诚实地在编码多一点后我使用这个一吨哈哈。非常感谢!不要害怕接受它作为回答,我的朋友。干杯!