Я создаю простой веб-API, используя NodeJS Express, для некоторых домашних приложений. Для своего телевизора я использую следующую библиотеку --> https://github.com/hobbyquaker/lgtv2.
Например, когда я запускаю свой код локально;
var lgtv = require('lgtv2')({
url: 'ws://192.168.178.31:3000'
});
lgtv.on('error', function(err) {
console.info(err);
});
lgtv.on('connect', function() {
console.info('connected');
lgtv.request('ssap://system/turnOff', function(err, res) {
lgtv.disconnect();
});
});
Ходит нормально. Однако тот же код, развернутый на моем Synology NAS, приводит к ошибке.
TypeError: Arguments to path.join must be strings
at path.js:360:15
at Array.filter (native)
at exports.join (path.js:358:36)
at module.exports (/volume1/web/NodeJS/node_modules/persist-path/index.js:19:22)
at new LGTV (/volume1/web/NodeJS/node_modules/lgtv2/index.js:47:16)
at LGTV (/volume1/web/NodeJS/node_modules/lgtv2/index.js:38:16)
at Object.module.exports.setNetflix (/volume1/web/NodeJS/controllers/tv.js:50:36)
at /volume1/web/NodeJS/routes/routes.js:43:12
at Layer.handle [as handle_request] (/volume1/web/NodeJS/node_modules/express/lib/router/layer.js:95:5)
at next (/volume1/web/NodeJS/node_modules/express/lib/router/route.js:137:13)
Единственное реальное различие, которое я могу заметить, это версия NPM, которая имеет версию 10.14.1 локально и версию 0.10.48 на моем NAS. Есть ли способ обойти эту проблему и заставить это работать?
Рэнди





Это очень странная библиотека.
Попробуйте этот код
console.info('Platform = ',process.platform);
var lgtv = require('lgtv2')({
url: 'ws://192.168.178.31:3000',
clientKey: ''
});
lgtv.on('error', function(err) {
console.info(err);
});
lgtv.on('connect', function() {
console.info('connected');
lgtv.request('ssap://system/turnOff', function(err, res) {
lgtv.disconnect();
});
});
Мое первое предложение состояло бы в том, чтобы точно протестировать ваш код, используя те же версии, которые вы будете использовать в производстве... т.е. те же версии, что и на вашем NAS. Моей второй мыслью было бы обновить версии, которые у вас есть на вашем NAS, чтобы они отражали вашу среду разработки. Также, на мой взгляд, разница в версиях между версиями npm огромна.