@GamiD said in Nodejs:
Не знаю это баг или так и должно быть но для новичков не очень удобно.
Сессия nodejs перезапускается если открыть действие "Node.js"
Например создаем глобальную переменную в одном из действий
Вызываем переменную с другого действия "Node.js" все работает как положено, стоит открыть редактор действия "Node.js" глобальная переменная пропадает приходится возвращаться в начала тестовый скрипт добавил.
Это не удобно когда поэтапно проверяешь код nodejs на работоспособность и добавляешь новые функции в код, если бы можно было как то без обновлений отключить перезапуск было бы отлично или хотя бы сделать галочку перезапускать или нет при редактировании.
test.xml
Глобальную переменную можно объявлять без записи её в объект global, просто объявите её без var
Я не так глубоко разбирал работу node и возможно где то не прав, по этому выскажу личное мнение:
Посмотрите код действия node js
_embedded("z8hknrrabq", "Node", "8.6.0", "", 60000 )!
первым аргументом функции _embedded является строка "z8hknrrabq", это имя js файла хранящегося в директории
\BrowserAutomationStudio\apps\22.6.5\embedded\*ХЕШ*\distr\lib\custom\

В этом файле и содержится код действия node js. Именно по этому и не работает копирование кубика в другой проект, само действие пытается открыть файл, а его может не быть в другом проекте. В коде проекта информация о файлах и коде в них содержится в теге <EmbeddedData>:
<EmbeddedData><![CDATA[[{"data":"global.qqq = 'Видит глобальную переменную'\r\nglobal.www = 'Не видит глобальную переменную после редактирования действия'","data_name":"z8hknrrabq","data_type":0,"language_name":"Node","language_version":"8.6.0"},{"data":"console.log(qqq)","data_name":"fz0xjv06rgv","data_type":0,"language_name":"Node","language_version":"8.6.0"},{"data":"console.log(www)","data_name":"gnbqh7ssqlb","data_type":0,"language_name":"Node","language_version":"8.6.0"}]]]></EmbeddedData>
BAS запускает один инстанс node для всех потоков и выполняет код действий node в нём. Во избежание ошибок и конфликтов при открытии и множественном редактировании действия и происходит сброс node. Изменение этого алгоритма и добавление опций для отключения сброса повлечёт за собой пачку вопросов от пользователей, почему у них не работают модули и их код постоянно выдаёт ошибки.