Javascript 在js文件之间传递变量。。。在终点站
首先,是的,我知道以前有人问过这个问题,但我仍然不知道如何让它起作用。我认为问题在于,我在Mac终端上通过node.js单独运行文件,类似于应用程序 这是交易。我有一个文件bitt1.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
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不要害怕接受它作为回答,我的朋友。干杯!我必须诚实地在编码多一点后我使用这个一吨哈哈。非常感谢!不要害怕接受它作为回答,我的朋友。干杯!