2015-03-17 2 views
0

Я пытаюсь создать бот-чат, который будет использоваться на twitch.tv, чтобы подключиться к irc, который прослушивает команды, набранные как !command, и в этот момент он сделает какое-то действие.Обновление зависимости приложения узла узла без перезапуска узла.

Моя первая мысль заключалась в том, чтобы использовать отдельный файл для хранения объекта, содержащего ожидаемые команды и соответствующие ответы, таким образом, если я хочу добавить новые команды на лету, я могу это сделать, но мне нужно выяснить способ чтобы импортированный объект команды обновлялся с помощью новых команд без остановки сервера узлов, подключенного к irc.

Будет ли это быть просто проще создать коллекцию MongoDB, содержащую команды, которые я могу проверить на каждый раз, когда новая команда приходит в (я буду использовать MongoDB позже для хранения некоторой информации с ботом)

Просто пытаюсь чтобы определить, каков будет наилучший курс действий:

+0

Просто сделать «отдельный файл» модуль, который захватывает отдельный файл и генерирует объект, вы можете обновить этот объект в течение всего жизненного цикла приложения, и в любое время она обновляется, писать эти изменения в файл, чтобы при следующей загрузке он вытащил файл со всеми изменениями. Интересно, существует ли существующий модуль npm, который делает это. –

+0

И есть. :) https://www.npmjs.com/package/node-json-db –

+0

Не взглянув на внутреннюю работу этого модуля, я не знаю, как он может обрабатывать обновления из внешнего источника (что я предполагаю это то, что вам нужно). Вы можете либо пойти маршрут mongodb (который может быть рекомендован), либо вы можете использовать модуль 'fs' для' watch() 'текстового файла для изменений, а при изменении перечитайте его. – Jason

ответ

0

Звучит так, как будто вам нужна база данных, однако вы можете использовать этот json-файл в качестве базы данных, используя модуль node-json-db.

var JsonDB = require('node-json-db'); 
var db = new JsonDB("commands", true); // targets file in same directory named "command.json" 
var commands = db.getData("/commands"); 

// ... as a callback somewhere... 
db.push("/commands", {test:"test", foo: {bar:["apple"]}}); 

commands = db.getData("/commands");