<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=ITV0110_node.js_t%C3%B6%C3%B6_2019</id>
	<title>ITV0110 node.js töö 2019 - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=ITV0110_node.js_t%C3%B6%C3%B6_2019"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;action=history"/>
	<updated>2026-10-28T10:40:15Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16365&amp;oldid=prev</id>
		<title>Martinv: /* Mis tuleb teha */</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16365&amp;oldid=prev"/>
		<updated>2019-12-05T01:26:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Mis tuleb teha&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 5. detsember 2019, kell 03:26&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;11. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;11. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kaks mängijat peavad saama käia kumbki oma brauseris vaheldumisi ja kui mõlemad käinud, näidatakse kummalegi, kes võitis ja alustatakse uuesti. Sisselogimist ei ole vaja teha, statistikat jne ei ole vaja kuvada. Brauseripoolset javascripti pole vaja ja võimalik on korduvkasutada 2. praktikumitöö CSSi&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kaks mängijat peavad saama käia kumbki oma brauseris vaheldumisi ja kui mõlemad käinud, näidatakse kummalegi, kes võitis ja alustatakse uuesti. Sisselogimist ei ole vaja teha, statistikat jne ei ole vaja kuvada. Brauseripoolset javascripti pole vaja ja võimalik on korduvkasutada 2. praktikumitöö CSSi&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Üks lihtne variant ehitamiseks on selline, kus veebileht end vastase käiku oodates kord sekundis refreshib ja seisu hoitakse lihtsalt failis ühe json-i &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reana&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Üks lihtne variant ehitamiseks on selline, kus veebileht end vastase käiku oodates kord sekundis refreshib ja seisu hoitakse lihtsalt failis ühe json-i &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;formaadis&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja mänguvälja. Mänguvälja ruudul klikkides  saadetakse serverile a&#039;la ?name=martin&amp;amp;move=0_0, kus 0_0 on vastavalt ülemine vasakpoolne ruut&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja mänguvälja. Mänguvälja ruudul klikkides  saadetakse serverile a&#039;la ?&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;turn=player1&amp;amp;&lt;/ins&gt;name=martin&amp;amp;move=0_0, kus 0_0 on vastavalt ülemine vasakpoolne ruut&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab mänguvälja seisu. Algseisu saab kirjeldada nt massiivina [[000],[000],[000]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab mänguvälja seisu. Algseisu saab kirjeldada nt massiivina [[000],[000],[000]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la  ?name=martin&amp;amp;move=0_0, siis:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la  ?name=martin&amp;amp;move=0_0, siis:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server muudab seisufaili [[100],[000],[000]]  ja annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server muudab seisufaili [[100],[000],[000]]  ja annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba valitud kohal käik, siis seisufaili ei kirjutata vaid kasutaja peab uuesti proovima.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba valitud kohal käik, siis seisufaili ei kirjutata vaid kasutaja peab uuesti proovima &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;?turn=playe2&amp;amp;state=retry&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;seisufailis on &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;juba kaks käiku a la {&quot;jaan&quot;:&quot;paber&quot;,&quot;tanel&quot;:&quot;kivi&quot;}: siis tuleb alustada uut mängu ehk server kirjutab selle faili üle uue ühe-käigu sisuga {&quot;tanel&quot;:&quot;kivi&quot;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kui server saab brauserilt ootan-käiku päringu &lt;/del&gt;a la ?state=waiting &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;siis kui:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Siis kontrollitakse kas on &lt;/ins&gt;seisufailis &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolm järjestikku sümbolit (nii servad kui diagonaalid). Kõige lihtsam &lt;/ins&gt;on &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;seda teha if() tingimuslausetega aga võid kasutada ka muid meetodeid&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;seisufailis &lt;/del&gt;on &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kaks käiku a la {&quot;jaan&quot;:&quot;paber&quot;,&quot;tanel&quot;:&quot;kivi&quot;} &lt;/del&gt;siis &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ta annab vastuseks info, &lt;/del&gt;kes &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;võitis ja uue &lt;/del&gt;käigu &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tegemise vormi&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Kui kolme järjestikust sümbolit ei ole, antakse käik edasi teisele mängijale &lt;/ins&gt;a&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&lt;/ins&gt;la ?&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;turn=playe2&amp;amp;&lt;/ins&gt;state=waiting&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** seisufail on tühi või on seal ainult üks nimi: annab tagasi htmli, mis ütleb &quot;oota&quot; ja refreshib sekundi järel päringuga a la ?state=waiting&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kui järjest &lt;/ins&gt;on &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolm sümbolit &lt;/ins&gt;siis &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;see mängija &lt;/ins&gt;kes käigu &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tegi on võitja. Seda näidatakse mõlemale kasutajale&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pane tähele, et see lihtne skeem võib minna rikki, kui peale eelmise mängu tulemuse saamist väga kiiresti uue käigu teed: võib juhtuda, et vastase leht ei jõua enne refreshida ja tulemust näidata, kui sinu käik juba seisu üle salvestab.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pane tähele, et see lihtne skeem võib minna rikki, kui peale eelmise mängu tulemuse saamist väga kiiresti uue käigu teed: võib juhtuda, et vastase leht ei jõua enne refreshida ja tulemust näidata, kui sinu käik juba seisu üle salvestab.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Martinv</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16364&amp;oldid=prev</id>
		<title>Martinv – 5. detsember 2019, kell 01:18</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16364&amp;oldid=prev"/>
		<updated>2019-12-05T01:18:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 5. detsember 2019, kell 03:18&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;15. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;15. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja mänguvälja. Mänguvälja ruudul klikkides  saadetakse serverile a&amp;#039;la ?name=martin&amp;amp;move=0_0, kus 0_0 on vastavalt ülemine vasakpoolne ruut&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja mänguvälja. Mänguvälja ruudul klikkides  saadetakse serverile a&amp;#039;la ?name=martin&amp;amp;move=0_0, kus 0_0 on vastavalt ülemine vasakpoolne ruut&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab mänguvälja seisu. Algseisu saab kirjeldada nt massiivina [[000],[000],[000]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab mänguvälja seisu. Algseisu saab kirjeldada nt massiivina [[000],[000],[000]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la  ?name=martin&amp;amp;move=0_0, siis &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on kolm varianti&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la  ?name=martin&amp;amp;move=0_0, siis:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;salvestab seisufailiks {&quot;tanel&quot;:&quot;kivi&quot;} &lt;/del&gt;ja annab tagasi htmli, mis ütleb &quot;oota&quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;muudab seisufaili [[100],[000],[000]]  &lt;/ins&gt;ja annab tagasi htmli, mis ütleb &quot;oota&quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba käik &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a la {&quot;jaan&quot;:&quot;paber&quot;}. Siis server salvestab seisufailiks {&quot;jaan&quot;:&quot;paber&quot;&lt;/del&gt;,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;tanel&quot;:&quot;kivi&quot;} ja annab vastuseks info, kes võitis ja uue käigu tegemise vormi&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;valitud kohal &lt;/ins&gt;käik, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;siis seisufaili ei kirjutata vaid kasutaja peab uuesti proovima&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba kaks käiku a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}: siis tuleb alustada uut mängu ehk server kirjutab selle faili üle uue ühe-käigu sisuga {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba kaks käiku a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}: siis tuleb alustada uut mängu ehk server kirjutab selle faili üle uue ühe-käigu sisuga {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab brauserilt ootan-käiku päringu a la ?state=waiting siis kui:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab brauserilt ootan-käiku päringu a la ?state=waiting siis kui:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Martinv</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16363&amp;oldid=prev</id>
		<title>Martinv: /* Mis tuleb teha */</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16363&amp;oldid=prev"/>
		<updated>2019-12-05T01:13:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Mis tuleb teha&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 5. detsember 2019, kell 03:13&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;7. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;7. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mis tuleb teha ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mis tuleb teha ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sinu ülesandeks on node.js abil ehitada hästi lihtne kahe inimese [https://en.wikipedia.org/wiki/Tic-tac-toe trips-traps-trulli mäng].  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sinu ülesandeks on node.js abil ehitada hästi lihtne kahe inimese [https://en.wikipedia.org/wiki/Tic-tac-toe trips-traps-trulli mäng]. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vaata ka seda [https://www.youtube.com/watch?v=GTWrWM1UsnA videot] või [https://medium.com/javascript-in-plain-english/the-worlds-most-empowering-tic-tac-toe-javascript-tutorial-a889e4c20883 seda tutoriali]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kaks mängijat peavad saama käia kumbki oma brauseris vaheldumisi ja kui mõlemad käinud, näidatakse kummalegi, kes võitis ja alustatakse uuesti. Sisselogimist ei ole vaja teha, statistikat jne ei ole vaja kuvada. Brauseripoolset javascripti pole vaja ja võimalik on korduvkasutada 2. praktikumitöö CSSi&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kaks mängijat peavad saama käia kumbki oma brauseris vaheldumisi ja kui mõlemad käinud, näidatakse kummalegi, kes võitis ja alustatakse uuesti. Sisselogimist ei ole vaja teha, statistikat jne ei ole vaja kuvada. Brauseripoolset javascripti pole vaja ja võimalik on korduvkasutada 2. praktikumitöö CSSi&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Martinv</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16362&amp;oldid=prev</id>
		<title>Martinv: /* Mis tuleb teha */</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16362&amp;oldid=prev"/>
		<updated>2019-12-05T01:09:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Mis tuleb teha&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 5. detsember 2019, kell 03:09&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;13. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;13. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Üks lihtne variant ehitamiseks on selline, kus veebileht end vastase käiku oodates kord sekundis refreshib ja seisu hoitakse lihtsalt failis ühe json-i reana:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Üks lihtne variant ehitamiseks on selline, kus veebileht end vastase käiku oodates kord sekundis refreshib ja seisu hoitakse lihtsalt failis ühe json-i reana:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vajuta ühte nuppu kolmest: kivi, paber, käärid&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kui vajutad, saadab &lt;/del&gt;serverile a la ?name=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tanel&lt;/del&gt;&amp;amp;move=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kivi&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mänguvälja&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mänguvälja ruudul klikkides  saadetakse &lt;/ins&gt;serverile a&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&lt;/ins&gt;la ?name=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;martin&lt;/ins&gt;&amp;amp;move=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0_0, kus 0_0 on vastavalt ülemine vasakpoolne ruut&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ühe või kahe inimese käiku&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* serveril on üks seisufail, kuhu ta kirjutab &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mänguvälja seisu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Algseisu saab kirjeldada nt massiivina [[000],[000],[000]] &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la ?name=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tanel&lt;/del&gt;&amp;amp;move=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kivi&lt;/del&gt;, siis on kolm varianti:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* kui server saab päringu a la &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;?name=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;martin&lt;/ins&gt;&amp;amp;move=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0_0&lt;/ins&gt;, siis on kolm varianti:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server salvestab seisufailiks {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufail on tühi: server salvestab seisufailiks {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba käik a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;}. Siis server salvestab seisufailiks {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab vastuseks info, kes võitis ja uue käigu tegemise vormi.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** seisufailis on juba käik a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;}. Siis server salvestab seisufailiks {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab vastuseks info, kes võitis ja uue käigu tegemise vormi.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Martinv</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16361&amp;oldid=prev</id>
		<title>Martinv: Uus lehekülg: &#039;nodejs  == Töö eesmärk ==  Töö sisuline eesmärk on tutvuda javascripti kasutamisega serveri pool [https://nodejs.org/en/ node.js]-i süsteemi abil....&#039;</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_node.js_t%C3%B6%C3%B6_2019&amp;diff=16361&amp;oldid=prev"/>
		<updated>2019-12-05T00:48:01Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;&lt;a href=&quot;/wiki/Fail:Nodejs.png&quot; title=&quot;Fail:Nodejs.png&quot;&gt;left|nodejs&lt;/a&gt;  == Töö eesmärk ==  Töö sisuline eesmärk on tutvuda javascripti kasutamisega serveri pool [https://nodejs.org/en/ node.js]-i süsteemi abil....&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Pilt:nodejs.png|left|nodejs]]&lt;br /&gt;
&lt;br /&gt;
== Töö eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Töö sisuline eesmärk on tutvuda javascripti kasutamisega serveri pool [https://nodejs.org/en/ node.js]-i süsteemi abil.&lt;br /&gt;
&lt;br /&gt;
== Mis tuleb teha ==&lt;br /&gt;
&lt;br /&gt;
Sinu ülesandeks on node.js abil ehitada hästi lihtne kahe inimese [https://en.wikipedia.org/wiki/Tic-tac-toe trips-traps-trulli mäng]. &lt;br /&gt;
&lt;br /&gt;
Kaks mängijat peavad saama käia kumbki oma brauseris vaheldumisi ja kui mõlemad käinud, näidatakse kummalegi, kes võitis ja alustatakse uuesti. Sisselogimist ei ole vaja teha, statistikat jne ei ole vaja kuvada. Brauseripoolset javascripti pole vaja ja võimalik on korduvkasutada 2. praktikumitöö CSSi&lt;br /&gt;
&lt;br /&gt;
Üks lihtne variant ehitamiseks on selline, kus veebileht end vastase käiku oodates kord sekundis refreshib ja seisu hoitakse lihtsalt failis ühe json-i reana:&lt;br /&gt;
&lt;br /&gt;
* server kuvab algul veebilehe, kus saad sisestada nimeväljale oma nime ja vajuta ühte nuppu kolmest: kivi, paber, käärid. Kui vajutad, saadab serverile a la ?name=tanel&amp;amp;move=kivi&lt;br /&gt;
* serveril on üks seisufail, kuhu ta kirjutab ühe või kahe inimese käiku.&lt;br /&gt;
* kui server saab päringu a la ?name=tanel&amp;amp;move=kivi, siis on kolm varianti:&lt;br /&gt;
** seisufail on tühi: server salvestab seisufailiks {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel, saates serverile päringu a la ?state=waiting&lt;br /&gt;
** seisufailis on juba käik a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;}. Siis server salvestab seisufailiks {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} ja annab vastuseks info, kes võitis ja uue käigu tegemise vormi.&lt;br /&gt;
** seisufailis on juba kaks käiku a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}: siis tuleb alustada uut mängu ehk server kirjutab selle faili üle uue ühe-käigu sisuga {&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;}&lt;br /&gt;
* kui server saab brauserilt ootan-käiku päringu a la ?state=waiting siis kui:&lt;br /&gt;
** seisufailis on kaks käiku a la {&amp;quot;jaan&amp;quot;:&amp;quot;paber&amp;quot;,&amp;quot;tanel&amp;quot;:&amp;quot;kivi&amp;quot;} siis ta annab vastuseks info, kes võitis ja uue käigu tegemise vormi.&lt;br /&gt;
** seisufail on tühi või on seal ainult üks nimi: annab tagasi htmli, mis ütleb &amp;quot;oota&amp;quot; ja refreshib sekundi järel päringuga a la ?state=waiting&lt;br /&gt;
&lt;br /&gt;
Pane tähele, et see lihtne skeem võib minna rikki, kui peale eelmise mängu tulemuse saamist väga kiiresti uue käigu teed: võib juhtuda, et vastase leht ei jõua enne refreshida ja tulemust näidata, kui sinu käik juba seisu üle salvestab.&lt;br /&gt;
&lt;br /&gt;
Sa võid ehitada oma rakenduse ka mingi hoopis teistsuguse skeemi järgi.&lt;br /&gt;
&lt;br /&gt;
Igasugused väikesed täiendused on ok ja soovitavad, aga ei anna mingeid lisapunkte.&lt;br /&gt;
&lt;br /&gt;
== Soovitusi ==&lt;br /&gt;
&lt;br /&gt;
Arendamiseks piisab arusaadavalt kahest eraldi tabist ühes brauseris, ei ole vaja mitut reaalset inimest. &lt;br /&gt;
&lt;br /&gt;
Kõige lihtsam on lasta serveril otse htmli genereerida ja CSS-i ning brauseripoolset js-i üldse mitte kasutada või kasutada seda minimaalselt, lehe sisse kodeerituna.&lt;br /&gt;
&lt;br /&gt;
node.js sissejuhatust vaata kursuse põhilehel node.js peatükis. Kindlasti ei ole vale alustada [https://www.w3schools.com/nodejs/default.asp w3schools&amp;#039;i mikrotutorialiga]&lt;br /&gt;
&lt;br /&gt;
node.js-i arenduse saad teha nii dijkstras kui ka üleni oma arvutis (installeeri endale node.js) või arvutiklassi arvutis (seal on ta olemas arvutiklassi standardpakettide hulgas, ei ole vaja olla admin). Lõpptulemusena tuleb rakendus igal juhul dijkstra-sse käima panna.&lt;br /&gt;
&lt;br /&gt;
== node.js Dijkstras ==&lt;br /&gt;
&lt;br /&gt;
Dijkstras saad käivitada node.js-i nii:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nodejs &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kus ampersand &amp;amp; ütleb opsüsteemile, et see programm tuleb käima jätta (kuni sa välja logid)&lt;br /&gt;
ehk koos programmiga&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nodejs myprog.js &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kusjuures debugimiseks ei ole seda ampersandi &amp;amp; otse vaja, võid lihtsalt käivitada a la &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nodejs myprog.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja siis debugida/trükke vaadata kuni teed ctrl-c või välja logid. Samas saad hoida lahti ka mõne teise putty akna.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Veel võib olla hea variant teha nii, et node jääb käima ka peale seda, kui välja logid:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nohup nodejs myprog.js &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Vaata, kas nodejs server töötab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja kui jah, siis sa näed midagi sellist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  PID TTY          TIME CMD&lt;br /&gt;
29728 pts/2    00:00:00 bash&lt;br /&gt;
30162 pts/2    00:00:00 nodejs&lt;br /&gt;
30288 pts/2    00:00:00 ps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
nodejs serveri peatamiseks ütle siis&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill 30162&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja kui see ei mõju, ütle kõvemini (niisama kill saadab leebe signaali a la sure ise maha, aga kill -9 tapab iga protsessi jõuga maha):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill -9 30162&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
kus 30162 on protsessi number PID, mida ps sulle nodejs kohta ütles.&lt;br /&gt;
&lt;br /&gt;
Portidena, kust datat servereerida, saad kasutada vahemikku &amp;lt;b&amp;gt;7300-8000&amp;lt;/b&amp;gt;. NB! Kui mõni port on hetkel kellegi poolt juba kasutuses, siis teine programm seda samal ajal kasutada ei saa.&lt;br /&gt;
&lt;br /&gt;
Näiteks selline nodejs-i programm töötab serveris ok: pane käima (vbl pead enne pordi muutma) ja ava http://dijkstra.cs.ttu.ee:7500/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/plain&amp;#039;});  &lt;br /&gt;
  res.end(&amp;#039;Hello World taneli poolt\n&amp;#039;);&lt;br /&gt;
}).listen(7500);&lt;br /&gt;
console.log(&amp;#039;Server running!&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Näited ==&lt;br /&gt;
&lt;br /&gt;
Järgnevas on väikesed node näited, mida sobib kasutada praksiga alustamiseks.&lt;br /&gt;
&lt;br /&gt;
localhost tähendab alati sellesama masina ip-d, kus ise hetkel oled. Kui sa brauserist avad &amp;lt;tt&amp;gt;http://localhost/...&amp;lt;/tt&amp;gt; siis see töötab ok ainult juhul, kui server (meil siis nodejs all jooksev proge) on samas masinas, kus brauser. Kui sa paned nodejs-ga oma proge dijkstrast käima, pead avama muidugi &amp;lt;tt&amp;gt;http://dijkstra.css.ttu.ee/...&amp;lt;/tt&amp;gt;  (ja port tuleb ka lisada igal juhul, kui su server ei käi vaikimisi 80 pordis).&lt;br /&gt;
&lt;br /&gt;
Kui oled nodejs oma arvutis käima saanud, käivita programmid käsurealt nii (dijkstras ütle node asemel nodejs, lisa lõppu ampersand ja pordid vali vahemikust 7300-8000):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
node myprog.js&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ava urlilt näiteks nii&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
http://localhost:1337&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
või nii&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
http://localhost:1337/suva/proov?b=c&amp;amp;d=f123555&amp;amp;a=456&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näited kuvavad debuginfot konsoolile ja näitavad tulemusi brauserisse.&lt;br /&gt;
&lt;br /&gt;
Hello world:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/plain&amp;#039;});  &lt;br /&gt;
  res.end(&amp;#039;Hello World taneli poolt\n&amp;#039;);&lt;br /&gt;
}).listen(1337, &amp;#039;127.0.0.1&amp;#039;);&lt;br /&gt;
console.log(&amp;#039;Server running at http://127.0.0.1:1337/&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Failist lugemine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/html&amp;#039;});&lt;br /&gt;
  &lt;br /&gt;
  var fs = require(&amp;#039;fs&amp;#039;);&lt;br /&gt;
  var show=&amp;quot;File contents:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  fs.readFile(&amp;#039;katse.txt&amp;#039;,&amp;quot;utf8&amp;quot;, function (err, data) {&lt;br /&gt;
    if (err) {&lt;br /&gt;
      console.log(err);&lt;br /&gt;
      res.write(&amp;quot;viga failist lugemisel&amp;quot;);&lt;br /&gt;
      res.end();&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    console.log(data);&lt;br /&gt;
    show+=data;&lt;br /&gt;
    res.write(show);&lt;br /&gt;
    res.end();&lt;br /&gt;
  });  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}).listen(1337, &amp;#039;127.0.0.1&amp;#039;);&lt;br /&gt;
console.log(&amp;#039;Server running at http://127.0.0.1:1337/&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Urli parsimine (katseta http://localhost:1337/suva/proov?b=c&amp;amp;d=f123555&amp;amp;a=456 )&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/html&amp;#039;});&lt;br /&gt;
  &lt;br /&gt;
  var fs = require(&amp;#039;fs&amp;#039;);&lt;br /&gt;
  var url = require(&amp;#039;url&amp;#039;);   &lt;br /&gt;
    &lt;br /&gt;
  fs.readFile(&amp;#039;katse.txt&amp;#039;,&amp;quot;utf8&amp;quot;, function (err, data) {&lt;br /&gt;
    if (err) {&lt;br /&gt;
      console.log(err);&lt;br /&gt;
      res.write(&amp;quot;viga failist lugemisel&amp;quot;);&lt;br /&gt;
      res.end();&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var show=&amp;quot;Url:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
    var url_parts = url.parse(req.url, true);&lt;br /&gt;
    show+=JSON.stringify(url_parts);&lt;br /&gt;
    show+=&amp;quot;&amp;lt;p&amp;gt;File contents:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
    show+=data;&lt;br /&gt;
    res.write(show);&lt;br /&gt;
    res.end();&lt;br /&gt;
  });  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}).listen(1337, &amp;#039;127.0.0.1&amp;#039;);&lt;br /&gt;
console.log(&amp;#039;Server running at http://127.0.0.1:1337/&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faili kirjutamine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/html&amp;#039;});&lt;br /&gt;
  &lt;br /&gt;
  var fs = require(&amp;#039;fs&amp;#039;);&lt;br /&gt;
  var url = require(&amp;#039;url&amp;#039;);   &lt;br /&gt;
    &lt;br /&gt;
  fs.readFile(&amp;#039;katse.txt&amp;#039;,&amp;quot;utf8&amp;quot;, function (err, data) {&lt;br /&gt;
    if (err) {&lt;br /&gt;
      console.log(err);&lt;br /&gt;
      res.write(&amp;quot;viga failist lugemisel&amp;quot;);&lt;br /&gt;
      res.end();&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var show=&amp;quot;Url:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
    var url_parts = url.parse(req.url, true);&lt;br /&gt;
    show+=JSON.stringify(url_parts);&lt;br /&gt;
    show+=&amp;quot;&amp;lt;p&amp;gt;File contents:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
    show+=data;&lt;br /&gt;
    var store=&amp;quot;some text&amp;quot;;&lt;br /&gt;
    fs.writeFile(&amp;#039;store.txt&amp;#039;,store, function (err) {&lt;br /&gt;
      if (err) {&lt;br /&gt;
        console.log(err);&lt;br /&gt;
        res.write(&amp;quot;viga faili kirjutamisel&amp;quot;);&lt;br /&gt;
        res.end();&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      res.write(show);&lt;br /&gt;
      res.end();&lt;br /&gt;
    });    &lt;br /&gt;
  });  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}).listen(1337, &amp;#039;127.0.0.1&amp;#039;);&lt;br /&gt;
console.log(&amp;#039;Server running at http://127.0.0.1:1337/&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kirjutatud failist lugemine ja ühe näiteparameeter a kuvamine ( katseta http://localhost:1337/suva/proov?b=c&amp;amp;d=f123555&amp;amp;a=456 )&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var http = require(&amp;#039;http&amp;#039;);&lt;br /&gt;
http.createServer(function (req, res) {&lt;br /&gt;
  res.writeHead(200, {&amp;#039;Content-Type&amp;#039;: &amp;#039;text/html&amp;#039;});&lt;br /&gt;
  &lt;br /&gt;
  var fs = require(&amp;#039;fs&amp;#039;);&lt;br /&gt;
  var url = require(&amp;#039;url&amp;#039;);   &lt;br /&gt;
    &lt;br /&gt;
  fs.readFile(&amp;#039;katse.txt&amp;#039;,&amp;quot;utf8&amp;quot;, function (err, data) {&lt;br /&gt;
    if (err) {&lt;br /&gt;
      console.log(err);&lt;br /&gt;
      res.write(&amp;quot;viga katsefailist lugemisel&amp;quot;);&lt;br /&gt;
      res.end();&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    fs.readFile(&amp;#039;store.txt&amp;#039;,&amp;quot;utf8&amp;quot;, function (err, storedata) {&lt;br /&gt;
      if (err) {&lt;br /&gt;
        console.log(err);&lt;br /&gt;
        res.write(&amp;quot;viga storefailist lugemisel&amp;quot;);&lt;br /&gt;
        res.end();&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var show=&amp;quot;Url:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
      var url_parts = url.parse(req.url, true);&lt;br /&gt;
      show+=JSON.stringify(url_parts);&lt;br /&gt;
      show+=&amp;quot;&amp;lt;p&amp;gt;Template file contents:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
      show+=data;      &lt;br /&gt;
      show+=&amp;quot;&amp;lt;p&amp;gt;Store file contents:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
      show+=storedata;&lt;br /&gt;
      parsed_store=JSON.parse(storedata);&lt;br /&gt;
      if (parsed_store.a) {&lt;br /&gt;
        show+=&amp;quot;&amp;lt;p&amp;gt;Store file param a value:&amp;lt;p&amp;gt; &amp;quot;&lt;br /&gt;
        show+=parsed_store.a;&lt;br /&gt;
      }&lt;br /&gt;
      var store=JSON.stringify(url_parts.query);&lt;br /&gt;
      show+=&amp;quot;&amp;lt;p&amp;gt;Stored:&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
      show+=store;&lt;br /&gt;
      fs.writeFile(&amp;#039;store.txt&amp;#039;,store, function (err) {&lt;br /&gt;
        if (err) {&lt;br /&gt;
          console.log(err);&lt;br /&gt;
          res.write(&amp;quot;viga faili kirjutamisel&amp;quot;);&lt;br /&gt;
          res.end();&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        res.write(show);&lt;br /&gt;
        res.end();&lt;br /&gt;
      });    &lt;br /&gt;
    });  &lt;br /&gt;
  });  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}).listen(1337, &amp;#039;127.0.0.1&amp;#039;);&lt;br /&gt;
console.log(&amp;#039;Server running at http://127.0.0.1:1337/&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Martinv</name></author>
	</entry>
</feed>