main.js
var count = 1;
// psuedocode
// if (words typed begins with @add)
require('./add.js');
// if (words typed begins with @remove)
require('./remove.js');
// if (words typed begins with @total)
require('./total.js');
module.exports.count = count;
总.js
var count = require('./main.js').count;
console.log(count);
添加.js
var count = require('./main.js').count;
count += 10;
console.log(count);
删除.js
var count = require('./main.js').count;
count -= 10;
console.log(count);
控制台日志
1
11
-9
背景:
我有一个应用程序(irc bot),我想添加一个功能,窥视可以执行@add 1 或@remove 1。我有一个 main.js,然后根据所说的触发器需要不同的文件。因此 add 将触发 add.js 文件,然后将 require('main.js') 并添加 10(10 为简化,它实际上会解析数字并使用该数字)。我遇到的问题是当有人四处走动并执行@remove 时。它需要('main.js')并从 1 中减去 10,得到 -9。并且执行@total 将输出1。
我已经对 module.exports 进行了相当好的搜索,但我还没有遇到像上面列出的那样的示例。 这些文档不包含任何接近我想要做的例子;这些问题1 , 2我理解——但对我没有任何用处——因为我理解那里所说的内容。
问题:
我想让 @add 和 @remove 都操纵同一个变量( count ),并让 @total 返回考虑到 @add 和 @removes 的总数。我是否错误地使用了 module.exports;还是有一种共享变量的通用方式,一个文件能够修改 module.exports 的内容并将结果返回到 main.js 文件?