• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ANGEL333node.js - Evented I/O for V8 JavaScript
    KOC256
    KOC256 --- ---
    Já jsem pořád ztracený v té asynchronitě...

    Mám dva funkční kusy kodů a nejsem schopen je spojit...
    Jedná se o vyplnění místa kde níže je napsáno "// X řádků kódu"

    Kód 1 - má za úkol stáhnout XML z webu a naparsovat ho do JSON.
    
    	http.get('http://www.nejaky-web.net/xml/file.xml', function(res) {
    		var response_data = '';
    		res.setEncoding('utf8');
    		res.on('data', function(chunk) {
    			response_data += chunk;
    		});
    		res.on('end', function() {
    			parser.parseString(response_data, function(err, result) {
    				if (err) {
    					console.log('Got error: ' + err.message);
    				} else {
    					console.log('Loading XML done.');
    				}
    			});
    		});
    		res.on('error', function(err) {
    			console.log('Got error: ' + err.message);
    		});
    	});
    


    Pak mám druhý kód, který vychází co mám v těch prvních 300 řádcích a taky mi funguje...:
    
    	puppeteer.launch({
    		headless: true
    		, userDataDir: '/var/www/node/data/'
    		, ignoreHTTPSErrors: true
    		, args: [
    			  '--no-sandbox'
    			, '--disable-setuid-sandbox'
    			, '--enable-file-cookies'
    		]})
    	.then(async browser => {
    		const page = await browser.newPage();
    
    		// set timeout
    		await page.setDefaultNavigationTimeout(10000);
    
    		Object.keys(result.GP.c).forEach(function(k) {
    			res.write('<b>' + result.GP.c[k].p[0].$.title + '</b><br/>');
    			Object.keys(result.GP.c[k].code).forEach(function(kk) {
    				res.write(result.GP.c[k].code[kk]);
    				try {
    					await page.goto('https://www.neco.com/' + result.GP.c[k].code[kk], {waitUntil: 'networkidle2'});
    
    					if (await page.$('#CBody_dMessage') != null) {
    						res.write(' => <span style="color:orange;font-weight:bold;">D</span><br/>');
    					} else if (await page.$('#CB_aMessage') != null) {
    						res.write(' => <span style="color:red;font-weight:bold;">A</span><br/>');
    					} else {
    						res.write(' => <span style="color:green;font-weight:bold;">OK</span><br/>');
    					}
    				} catch (error) {
    					console.log('ERROR');
    					res.write('<br/><br/>ERROR<br/>');
    					res.end();
    				}
    			});
    		});
    		res.end();
    		
    		await page.close();
    		await browser.close();
    	});
    


    Zkousel jsem dane kusy kodu do sebe ruzne napasovavat ale jak z prava, tak z leva se vzdy dostanu do stavu, kde mi to hlasi:

    SyntaxError: await is only valid in async function


    Dokázal by mi někdo jednoduše vysvětlit jak tyto kusy kódu spojit? Nechce se mi dělat prasárnu, kde jedním voláním provedu download a uložení a druhým načtení tohoto souboru a provedení druhého kusu kódu. TO přece musí jít. Dokonce jsem první kus kódu se snažil přepsat do puppeteeru či třeba R2, ale prostě vždycky to na něčem zhavarovalo.

    Díky...
    THEODORT
    THEODORT --- ---
    KOC256: ano, trivialni router kterej smeruje na dane casti kodu.
    KOC256
    KOC256 --- ---
    Mám jednoúčelovou aplikaci, která má následující kostru...
    
    var express = require('express');
    var app     = express();
    const puppeteer = require('puppeteer');
    require('events').EventEmitter.prototype._maxListeners = 100;
    
    let settings = require('./settings.json');
    
    app.get('/', function(req, res) {
    // 300 řádků kódu
    })
    
    var server = app.listen('80')
    exports = module.exports = server;
    


    A potřebuji přidat ještě druhou jednoúčelnou apliaci...
    Předpokládám, že primitivní řešení je udělat něco jako:
    
    var express = require('express');
    var app     = express();
    const puppeteer = require('puppeteer');
    require('events').EventEmitter.prototype._maxListeners = 100;
    
    let settings = require('./settings.json');
    
    app.get('/', function(req, res) {
    // 300 řádků kódu
    })
    
    app.get('/druha-aplikace/', function(req, res) {
    // X řádků kódu
    })
    
    var server = app.listen('80')
    exports = module.exports = server;
    


    Volání pak:
    http://domena.tld/
    a
    http://domena.tld/druha-aplikace/

    A dotaz je, jaká je praxe, jak toto dělat správně, ale pořád jednoduše? Mít tam nějaké funkce, které budou v requirovaných souborech? /plně se nechci pouštět do nějakých frameworků a řešit tam routery a další aplikační vrstvy...
    FEDY
    FEDY --- ---
    JUNIOR: proste to pripis do toho objektu - {msg:'Email has been sent', layout: false} pokud to chapu spravne tedy ...
    JUNIOR
    JUNIOR --- ---
    Ahoj,
    poprvé řeším něco na backendu a tak nějak se rozkoukávám.

    Prosím, dělám si v node.js emailový formulář a v jednom řádku mám:

    app.get('/', (req, res) => {
    res.render('contact', {layout: false});
    });


    a dále mám:
    res.render('contact', {msg:'Email has been sent'})

    a potřebuji tam dostat {layout: false}


    Jak to mám prosím zapsat aby to fungovalo a neházelo mi to errory?

    Díky
    ELPASO
    ELPASO --- ---
    FEDY: Jsem absolutni rookie. Takze me nenapadlo debug node prehodit na celej msg. Sice tam neni nazev source nodu ale je tam ID zigbee senzoru ze ktereho tecou data.

    Diky. Stacilo nakopnout :)
    FEDY
    FEDY --- ---
    ELPASO: ja na to uz dlouho nesahal, ale nemuzes si udelat console.log celeho msg objektu ? pokud tam neco takoveho nejni, tak by nemel byt problem si to na tom zdrojovem zarizeni do objektu pridat, ne ?
    ELPASO
    ELPASO --- ---
    nazdar,

    pouzivate tu nekdo NodeRed? Potreboval bych vedet jestli lze z nejake promene vycitat nazev NODE ze ktereho prichazi msg.payload? na zaklade nazvu zdroje modifikuju odchozi zpravu a chtel bych to automatizovat abych nemusel manualne definovat promenou v kazde funkci pripojene na zdrojovej NODE.

    thx
    TREE
    TREE --- ---
    Poucny a zaroven docela desivy video o tom jak se dnes pasuje zavadnej kod do npm package, jak je to relativne snadny a jak se proti tomu da tezko branit.. Doporucuju!
    Analysis of an exploited npm package – Jarrod Overson
    https://www.youtube.com/watch?v=cvtt8TexqbU
    ROMANICAK
    ROMANICAK --- ---
    Ahoj, pomohl by mi prosim nekdo, kdo tohle uz treba nekdy resil?

    angularjs - How to properly embed MJPEG video in Angular app - Chrome, Edge, other browsers - Stack Overflow
    https://stackoverflow.com/...ly-embed-mjpeg-video-in-angular-app-chrome-edge-other-browsers/52695879
    ROMANICAK
    ROMANICAK --- ---
    ROMANICAK:

    Nikdo tu neni, kdo by vedel jak udelat co potrebuju?

    Co se mi k tomu podarilo najit, nevim jak moc je to relevantni:

    73395 - MJPEG image can't stop loading - chromium - Monorail
    73395 - MJPEG image can't stop loading - chromium - Monorail
    https://bugs.chromium.org/p/chromium/issues/detail?id=73395
    https://gist.github.com/legege/5301477
    GitHub - videogular/videogular: The HTML5 video player for AngularJS
    GitHub - videogular/videogular: The HTML5 video player for AngularJS
    https://github.com/videogular/videogular
    ROMANICAK
    ROMANICAK --- ---
    KOC256:
    Jezis ja to zpackal, pardon:

    https://185.47.222.180

    grdw/grdw

    primej link na kamerku je pak po prihlaseni
    https://185.47.222.180/webcam
    KOC256
    KOC256 --- ---
    ROMANICAK:
    nejede
    ROMANICAK
    ROMANICAK --- ---
    ROMANICAK:
    Pardon...aby kamerka jela, musite se divat pres SSL
    https://185.47.222.180:2346/index.htm#/?z=H
    grdw/grdw

    prosim nic nemenit, dik.
    ROMANICAK
    ROMANICAK --- ---
    Ahoj, prenasim dotaz sem, nejsem schopnej se dohrabat vysledku...

    --jsem uplny amater a prosim o radu. Mam mjpeg stream a v prohlizec v PC to jede normalne - zobrazi se stranka a v ni video. V browseru v telefonu se me to ale misto zobrazeni videa pta na download...jak mam to html napsat, aby se me to neptalo a zobrazovalo to video? Kdyz udelam statickou html stranku s kodem niz, tak to jde. Ale ja to potrebuju nejak zakomponovat do Growduino kodu, coz je prave Angular...kdyz pomoci grunt vygeneruju kod a uploadnu na webserver, tak tam ta stranka proste neni (muzete se podivat asmi na http://185.47.222.180:2346 ).

    Telefon je windows - prohlizec edge

    Soucasnej kod na strance vypada*(https://github.com/romanicak/growduino-client):
    <html>
    <head>
    <title>GrowRoomCam</title>

    <script>
    var i=0;
    var url="../webcam";
    function jsUpdate() {document.image.src=url+"&"+(i++);}
    </script>

    </head>
    <body onLoad="jsUpdate()">
    <img name="image" onLoad="jsUpdate()">
    </body>
    </html>
    FEDY
    FEDY --- ---
    FEDY: ...a opet si odpovim (skoda , ze vcera nesel web te knihovny, vyresil bych behem 30sec jako dnes, kdy uz sel)

    VarBind objects

    value: The value, in decoded form. This will be an integer for integer, gauge, counter and timetick types, a string for an octet string value, an array for array or IP number types.

    valueHex: For octet string values, this is a hex string representation of the value. ---- tady je hodnota spravne
    FEDY
    FEDY --- ---
    tak zase ja :-D uz jsem zoufalej, tak znovu zkusim ...

    mam snmp-native knihovnu, ctu DateAndTime (octet string) , pricemz prvni dva bajty jsou rok, ovsem - dostavam blbou hodnotu - buffer ma obsah [7,253,.... , kdyz to prevedu na hexa, je to 07FD, coz je 2045 (spatne). kdyz provedu snmpwalk v koznoli linuxu, dostanu 07E2, coz je 2018 (spravne). cili konzolova verze snmpwalk by v bufferu mela [7,226... , rozdil hodnot tedy 253-226 cini 27. no neni to divne ?

    nevite nekdo v cem by mohl spocivat takovy problem ?
    FEDY
    FEDY --- ---
    FEDY:
    KOC256:

    tak jsem na to prisel - kazdy radek konfigurace (zapis) je potreba provadet separe kanalem - vzdy pockat na .on('done') , tam kanal uzavrit a pro dalsi radek konfigu otevrit novy... funguje jako vino ! hurraaaa :-D
    KOC256
    KOC256 --- ---
    FEDY:
    ja resil uplne neco jineho jen ve stejne technologii... ...to byl spise povzdech :)
    FEDY
    FEDY --- ---
    KOC256: hmm, to byl jiste nejaky PHPckar :-D (NO FLAME) me ta spojeni asi viset nezustavaji, v logu mikrotika vidim, ze "user logged out". je vsak divne, ze po tech nekolika uspesnych pripojeni a provedeni potrebneho to pak pise user logged out jiz treba po prvnim,druhem(,tretim) prikazu, prestoze jich valim treba 20. a jak jsi to vyresil ? telnet/ssh ? (to se mi kua nechce :-))
    Kliknutím sem můžete změnit nastavení reklam