TypeError: Аргументы в path.join должны быть строками NodeJS - PullRequest
0 голосов
/ 22 февраля 2019

Я создаю простой веб-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.log(err);
    });

    lgtv.on('connect', function() {
        console.log('connected');
        lgtv.request('ssap://system/turnOff', function(err, res) {
            lgtv.disconnect();
        });

    });

Он работает нормально.Однако тот же код, развернутый на моем NAS-устройстве Synology, приводит к ошибке.

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, которая локально v10.14.1 и v0.10.48 на моемNAS.Есть ли способ обойти эту проблему и заставить ее работать?

Randy

1 Ответ

0 голосов
/ 22 февраля 2019

Это очень странная библиотека.

Попробуйте этот код

console.log('Platform = ',process.platform);
var lgtv = require('lgtv2')({
    url: 'ws://192.168.178.31:3000',
    clientKey: ''
});

lgtv.on('error', function(err) {
    console.log(err);
});

lgtv.on('connect', function() {
    console.log('connected');
    lgtv.request('ssap://system/turnOff', function(err, res) {
        lgtv.disconnect();
    });

});
...