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;
total.js
var count = require('./main.js').count;
console.log(count);
add.js
var count = require('./main.js').count;
count += 10;
console.log(count);
remove.js
var count = require('./main.js').count;
count -= 10;
console.log(count);
console.log
1
11
-9
История:
У меня есть приложение (irc bot), и я хочу добавить функцию, которую peeps может сделать @add 1 или @remove 1. У меня есть main.js, который затем требует разных файлов в зависимости от триггеров, которые указаны. Таким образом, add будет запускать файл add.js, а затем потребуется ( "main.js" ) и добавить 10 (10 для упрощения, он фактически проанализирует номер и использовать этот номер). Проблема, с которой я сталкиваюсь, - это когда кто-то идет и делает @remove. Он требует ( "main.js" ) и вычитает 10 из 1, что приводит к -9. И выполнение @total будет выводить 1.
Я сделал довольно хороший поиск для modules.exports, и я не сталкивался с примером, подобным приведенному выше. Документы не содержат каких-либо примеров, близких к тому, что я хочу делать; и эти вопросы 1, 2 Я понимаю - но не полезен для меня - как я понимаю, что там сказано.
Вопрос:
Я бы хотел, чтобы и @add, и @remove управляли одной и той же переменной (count), а для @total возвращали общее количество с учетом @add и @removes. Я неправильно использую module.exports; или существует общий способ обмена переменными, причем один файл может изменять содержимое модуля .exports и возвращать результаты в файл main.js?