<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Express</id>
	<title>Express - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Express"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Express&amp;action=history"/>
	<updated>2026-04-23T16:55:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Express&amp;diff=88353&amp;oldid=prev</id>
		<title>Lsokolowski1: /* Pesel app */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Express&amp;diff=88353&amp;oldid=prev"/>
		<updated>2024-10-29T12:52:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pesel app&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;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:52, 29 October 2024&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-l211&quot;&gt;Line 211:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 211:&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;		} else {&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;		} else {&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;			jQuery(&amp;quot;p#checkpesel&amp;quot;).remove();&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;			jQuery(&amp;quot;p#checkpesel&amp;quot;).remove();&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;var yearFromPesel = peselFromForm.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substr&lt;/del&gt;(0, 2);&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;            &lt;/ins&gt;var yearFromPesel = peselFromForm.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substring&lt;/ins&gt;(0, 2);&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;var monthFromPesel = peselFromForm.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substr&lt;/del&gt;(2, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;            &lt;/ins&gt;var monthFromPesel = peselFromForm.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substring&lt;/ins&gt;(2, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&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;var dayFromPesel = peselFromForm.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substr&lt;/del&gt;(4, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;            &lt;/ins&gt;var dayFromPesel = peselFromForm.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;substring&lt;/ins&gt;(4, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&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;			var countedFromPesel = peselDfp(yearFromPesel, monthFromPesel);&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;			var countedFromPesel = peselDfp(yearFromPesel, monthFromPesel);&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;			var dateOfBirth = countedFromPesel[&amp;#039;year&amp;#039;] + &amp;#039;-&amp;#039; + countedFromPesel[&amp;#039;month&amp;#039;] + &amp;#039;-&amp;#039; + dayFromPesel;&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;			var dateOfBirth = countedFromPesel[&amp;#039;year&amp;#039;] + &amp;#039;-&amp;#039; + countedFromPesel[&amp;#039;month&amp;#039;] + &amp;#039;-&amp;#039; + dayFromPesel;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lsokolowski1</name></author>
	</entry>
	<entry>
		<id>https://training-course-material.com/index.php?title=Express&amp;diff=88297&amp;oldid=prev</id>
		<title>Lsokolowski1: /* Pesel app */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Express&amp;diff=88297&amp;oldid=prev"/>
		<updated>2024-10-01T12:44:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pesel app&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;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:44, 1 October 2024&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-l182&quot;&gt;Line 182:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 182:&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;	&amp;lt;body&amp;gt;&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;	&amp;lt;body&amp;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;	    &amp;lt;form id=&amp;quot;testy&amp;quot; action=&amp;quot;#&amp;quot;&amp;gt;&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;	    &amp;lt;form id=&amp;quot;testy&amp;quot; action=&amp;quot;#&amp;quot;&amp;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;	        PESEL: &amp;lt;input type=&quot;text&quot; id=&quot;pesel&quot; value=&quot;59112304975&quot;&amp;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;	        PESEL: &amp;lt;input type=&quot;text&quot; id=&quot;pesel&quot; value=&quot;59112304975&quot; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;&amp;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;	        NIP: &amp;lt;input type=&quot;text&quot; id=&quot;nip&quot; value=&quot;8652402585&quot;&amp;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;	        NIP: &amp;lt;input type=&quot;text&quot; id=&quot;nip&quot; value=&quot;8652402585&quot; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;&amp;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;	        DOB: &amp;lt;input type=&quot;text&quot; id=&quot;dob&quot;&amp;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;	        DOB: &amp;lt;input type=&quot;text&quot; id=&quot;dob&quot; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;&amp;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;	    &amp;lt;/form&amp;gt;&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;	    &amp;lt;/form&amp;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;/table&gt;</summary>
		<author><name>Lsokolowski1</name></author>
	</entry>
	<entry>
		<id>https://training-course-material.com/index.php?title=Express&amp;diff=87853&amp;oldid=prev</id>
		<title>Lsokolowski1: /* Docker with node */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Express&amp;diff=87853&amp;oldid=prev"/>
		<updated>2023-11-22T10:20:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Docker with node&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;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:20, 22 November 2023&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-l304&quot;&gt;Line 304:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 304:&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;== Docker with node ==&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;== Docker with node ==&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;/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;&amp;lt;!-- TODO: fix it&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;* Simple example with node&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;* Simple example with node&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;** https://nodejs.org/en/docs/guides/nodejs-docker-webapp/&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;** https://nodejs.org/en/docs/guides/nodejs-docker-webapp/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;--&amp;gt;&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;* Bigger example with mongodb&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;* Bigger example with mongodb&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;** https://github.com/DanWahlin/NodeExpressMongoDBDockerApp&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;** https://github.com/DanWahlin/NodeExpressMongoDBDockerApp&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lsokolowski1</name></author>
	</entry>
	<entry>
		<id>https://training-course-material.com/index.php?title=Express&amp;diff=86860&amp;oldid=prev</id>
		<title>Lsokolowski1: /* Pesel app */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Express&amp;diff=86860&amp;oldid=prev"/>
		<updated>2022-12-10T05:17:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pesel app&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:JavaScript]]&lt;br /&gt;
[[Category:Angular]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Express exercises ==&lt;br /&gt;
&lt;br /&gt;
=== Node with express ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Making &amp;#039;express.js&amp;#039; project&lt;br /&gt;
----------------------------------------&lt;br /&gt;
sudo npm install -g express express-generator&lt;br /&gt;
express -e my-express-project&lt;br /&gt;
cd my-express-project&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
# navigate to http://localhost:3000/ in your web browser&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creating simple router in express.js&lt;br /&gt;
&lt;br /&gt;
1. First, let&amp;#039;s create a new route for all our API requests.&lt;br /&gt;
Create a new file called &amp;#039;/routes/api.js&amp;#039; ;&lt;br /&gt;
inside this file, we will define two new routes:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
var express = require(&amp;#039;express&amp;#039;);&lt;br /&gt;
var router = express.Router();&lt;br /&gt;
router.get(&amp;#039;/&amp;#039;, function(req, res, next) {&lt;br /&gt;
  res.send(&amp;#039;API is running&amp;#039;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
router.get(&amp;#039;/:param&amp;#039;, function(req, res, next) {&lt;br /&gt;
  var params = req.params;&lt;br /&gt;
  var query = req.query;&lt;br /&gt;
  Object.assign(params, query);&lt;br /&gt;
  res.json(params);&lt;br /&gt;
});&lt;br /&gt;
module.exports = router;&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
2. Next, we will update our &amp;#039;/app.js&amp;#039; configuration to import this new route, and&lt;br /&gt;
provide it to Express as middleware using the use command:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
(...)&lt;br /&gt;
var api = require(&amp;#039;./routes/api&amp;#039;);&lt;br /&gt;
var app = express();&lt;br /&gt;
(...)&lt;br /&gt;
app.use(express.static(path.join(__dirname, &amp;#039;public&amp;#039;)));&lt;br /&gt;
app.use(&amp;#039;/api&amp;#039;, api);&lt;br /&gt;
(...)&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
3. Finally, we must restart our Express server. Now, when we visit&lt;br /&gt;
&amp;#039;localhost:3000/api&amp;#039; , we will see the API is running text; if we visit&lt;br /&gt;
&amp;#039;localhost:3000/api/foobar?search=barfoo&amp;#039; , we will see a JSON response:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;param&amp;quot;:&amp;quot;foobar&amp;quot;,&lt;br /&gt;
  &amp;quot;search&amp;quot;:&amp;quot;barfoo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementing static file serving in Express&lt;br /&gt;
&lt;br /&gt;
1. First, let&amp;#039;s build our Angular application by running the Angular-CLI build command in our project directory:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
cd your_angular_app_path&lt;br /&gt;
ng build&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
2. Next, let&amp;#039;s create a new &amp;#039;/routes/angular.js&amp;#039; route in our Express project, to configure serving our Angular application. We will need to define a relative route from this project to our Angular project using Node.js&amp;#039;s core path module:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
var path = require(&amp;#039;path&amp;#039;);&lt;br /&gt;
var express = require(&amp;#039;express&amp;#039;);&lt;br /&gt;
var router = express.Router();&lt;br /&gt;
&lt;br /&gt;
var angularBuildPath = path.resolve(__dirname, &amp;#039;../../my-angular-project/dist&amp;#039;);&lt;br /&gt;
router.use(express.static(angularBuildPath));&lt;br /&gt;
router.get(&amp;#039;*&amp;#039;, (req, res, next) =&amp;gt; {&lt;br /&gt;
  if (req.url.startsWith(&amp;#039;/api&amp;#039;)) return next();&lt;br /&gt;
  res.sendFile(path.join(angularBuildPath, &amp;#039;index.html&amp;#039;));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
module.exports = router;&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
3. We will have to update our &amp;#039;/app.js&amp;#039; Express configuration to load our new route configuration. Since it will serve most of the content for our application, we will place it before our API configuration. We&amp;#039;ll also remove the &amp;#039;index&amp;#039; and &amp;#039;user&amp;#039; routes that were generated when we originally created the project with express-generator:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
(...)&lt;br /&gt;
var api = require(&amp;#039;./routes/api&amp;#039;);&lt;br /&gt;
var angular = require(&amp;#039;./routes/angular&amp;#039;);&lt;br /&gt;
(...)&lt;br /&gt;
app.use(&amp;#039;/&amp;#039;, angular);&lt;br /&gt;
app.use(&amp;#039;/api&amp;#039;, api);&lt;br /&gt;
(...)&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
4. Almost there (-:&lt;br /&gt;
Update our error handler in &amp;#039;/app.js&amp;#039; so that it will instead serve JSON error&lt;br /&gt;
messages to us when there is an unresolved request:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
(...)&lt;br /&gt;
app.use(&amp;#039;/&amp;#039;, angular);&lt;br /&gt;
app.use(&amp;#039;/api&amp;#039;, api);&lt;br /&gt;
(...)&lt;br /&gt;
app.use(function(req, res) {&lt;br /&gt;
  var error = new Error(&amp;#039;Not Found&amp;#039;);&lt;br /&gt;
  res.status(404).json({&lt;br /&gt;
    status: 404,&lt;br /&gt;
    message: error.message,&lt;br /&gt;
    name: error.name&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
module.exports = app;&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
5. Restart your Express server and navigate to &amp;#039;localhost:3000/&amp;#039; . &lt;br /&gt;
You will see your Angular application load.&lt;br /&gt;
Navigating to &amp;#039;localhost:3000/api/&amp;#039; will still serve the API status page.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding Bootstrap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0. Install Bootstrap via npm&lt;br /&gt;
npm install bootstrap@3.4.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. We will have to update our &amp;#039;/app.js&amp;#039; Express configuration.&lt;br /&gt;
...&lt;br /&gt;
app.use(express.static(path.join(__dirname, &amp;#039;public&amp;#039;)));&lt;br /&gt;
// Bootstrap part, step 1&lt;br /&gt;
app.use(express.static(__dirname + &amp;#039;/node_modules/bootstrap/dist&amp;#039;));&lt;br /&gt;
&lt;br /&gt;
app.use(&amp;#039;/&amp;#039;, angular);&lt;br /&gt;
app.use(&amp;#039;/api&amp;#039;, api);&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Then we need to add Bootstrap&amp;#039;s &amp;quot;css&amp;quot; and &amp;quot;js&amp;quot; references in our main html template (usually it&amp;#039;s &amp;quot;index.html&amp;quot;).&lt;br /&gt;
&amp;lt;!-- jQuery reference --&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;!-- Bootstrap, part 2 --&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot; src=&amp;quot;js/bootstrap.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/bootstrap.min.css&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;!-- our custom js, which is using other libraries, etc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Restart your Express server and navigate to localhost:3000/ .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Add some &amp;quot;css&amp;quot; classes from Bootstrap, restart server again and enjoy!&lt;br /&gt;
(-8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pesel app ===&lt;br /&gt;
&lt;br /&gt;
Make it as:&lt;br /&gt;
* angular5 app&lt;br /&gt;
* vue.js app&lt;br /&gt;
* react.js app&lt;br /&gt;
* ember.js app&lt;br /&gt;
* extension to &amp;#039;&amp;#039;node3&amp;#039;&amp;#039; or &amp;#039;&amp;#039;node4&amp;#039;&amp;#039;&lt;br /&gt;
* extension to &amp;#039;&amp;#039;ts-node-starter&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;head&amp;gt;&lt;br /&gt;
	    &amp;lt;title&amp;gt;pesel&amp;lt;/title&amp;gt;&lt;br /&gt;
	    &amp;lt;script src=&amp;quot;https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
	&amp;lt;/head&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt;&lt;br /&gt;
	    &amp;lt;form id=&amp;quot;testy&amp;quot; action=&amp;quot;#&amp;quot;&amp;gt;&lt;br /&gt;
	        PESEL: &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;pesel&amp;quot; value=&amp;quot;59112304975&amp;quot;&amp;gt;&lt;br /&gt;
	        NIP: &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;nip&amp;quot; value=&amp;quot;8652402585&amp;quot;&amp;gt;&lt;br /&gt;
	        DOB: &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;dob&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Invoking declared functions&lt;br /&gt;
 */&lt;br /&gt;
jQuery(document).ready(function() {&lt;br /&gt;
  updateDateOfBirthFromPesel();  &lt;br /&gt;
  checkNIP();&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Gets proper date of birth from pesel&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
function updateDateOfBirthFromPesel() {&lt;br /&gt;
  jQuery(&amp;quot;#pesel&amp;quot;).focusout(&lt;br /&gt;
  	function(){&lt;br /&gt;
		var peselFromForm = jQuery(this).val().trim();&lt;br /&gt;
		var peselv = peselValid(peselFromForm);&lt;br /&gt;
		if ( !peselv ) {&lt;br /&gt;
			if ( !jQuery(&amp;quot;#checkpesel&amp;quot;).length ){&lt;br /&gt;
				jQuery(&amp;quot;#testy&amp;quot;).prepend(&amp;#039;&amp;lt;p id=&amp;quot;checkpesel&amp;quot; style=&amp;quot;color:red; font-size:24px;&amp;quot;&amp;gt;Invalid PESEL number!&amp;lt;/p&amp;gt;&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			jQuery(&amp;quot;p#checkpesel&amp;quot;).remove();&lt;br /&gt;
			var yearFromPesel = peselFromForm.substr(0, 2);&lt;br /&gt;
			var monthFromPesel = peselFromForm.substr(2, 2);&lt;br /&gt;
			var dayFromPesel = peselFromForm.substr(4, 2);&lt;br /&gt;
			var countedFromPesel = peselDfp(yearFromPesel, monthFromPesel);&lt;br /&gt;
			var dateOfBirth = countedFromPesel[&amp;#039;year&amp;#039;] + &amp;#039;-&amp;#039; + countedFromPesel[&amp;#039;month&amp;#039;] + &amp;#039;-&amp;#039; + dayFromPesel;&lt;br /&gt;
			jQuery(&amp;quot;#dob&amp;quot;).val(dateOfBirth);&lt;br /&gt;
		}&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Adds invalid nip error message&lt;br /&gt;
 * &lt;br /&gt;
 */ &lt;br /&gt;
function checkNIP(){&lt;br /&gt;
	jQuery(&amp;quot;#nip&amp;quot;).focusout(&lt;br /&gt;
		function(){&lt;br /&gt;
	var nip = jQuery(this).val().trim();&lt;br /&gt;
	var nipv = nipValid(nip);&lt;br /&gt;
		if ( !nipv ) {&lt;br /&gt;
			if ( !jQuery(&amp;quot;#checknip&amp;quot;).length ){&lt;br /&gt;
			jQuery(&amp;quot;#testy&amp;quot;).prepend(&amp;#039;&amp;lt;p id=&amp;quot;checknip&amp;quot; style=&amp;quot;color:red; font-size:24px;&amp;quot;&amp;gt;Invalid NIP number!&amp;lt;/p&amp;gt;&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			jQuery(&amp;quot;p#checknip&amp;quot;).remove();&lt;br /&gt;
		}&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * Transforms the year and month from PESEL into real date&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
function peselDfp(yfp, mfp){&lt;br /&gt;
	var dfp = [];&lt;br /&gt;
	var age1800_1899 = [&amp;quot;81&amp;quot;,&amp;quot;82&amp;quot;,&amp;quot;83&amp;quot;,&amp;quot;84&amp;quot;,&amp;quot;85&amp;quot;,&amp;quot;86&amp;quot;,&amp;quot;87&amp;quot;,&amp;quot;88&amp;quot;,&amp;quot;89&amp;quot;,&amp;quot;90&amp;quot;,&amp;quot;91&amp;quot;,&amp;quot;92&amp;quot;];&lt;br /&gt;
	var age1900_1999 = [&amp;quot;01&amp;quot;,&amp;quot;02&amp;quot;,&amp;quot;03&amp;quot;,&amp;quot;04&amp;quot;,&amp;quot;05&amp;quot;,&amp;quot;06&amp;quot;,&amp;quot;07&amp;quot;,&amp;quot;08&amp;quot;,&amp;quot;09&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;11&amp;quot;,&amp;quot;12&amp;quot;];&lt;br /&gt;
	var age2000_2099 = [&amp;quot;21&amp;quot;,&amp;quot;22&amp;quot;,&amp;quot;23&amp;quot;,&amp;quot;24&amp;quot;,&amp;quot;25&amp;quot;,&amp;quot;26&amp;quot;,&amp;quot;27&amp;quot;,&amp;quot;28&amp;quot;,&amp;quot;29&amp;quot;,&amp;quot;30&amp;quot;,&amp;quot;31&amp;quot;,&amp;quot;32&amp;quot;];&lt;br /&gt;
	var age2100_2199 = [&amp;quot;41&amp;quot;,&amp;quot;42&amp;quot;,&amp;quot;43&amp;quot;,&amp;quot;44&amp;quot;,&amp;quot;45&amp;quot;,&amp;quot;46&amp;quot;,&amp;quot;47&amp;quot;,&amp;quot;48&amp;quot;,&amp;quot;49&amp;quot;,&amp;quot;50&amp;quot;,&amp;quot;51&amp;quot;,&amp;quot;52&amp;quot;];&lt;br /&gt;
	var age2200_2299 = [&amp;quot;61&amp;quot;,&amp;quot;62&amp;quot;,&amp;quot;63&amp;quot;,&amp;quot;64&amp;quot;,&amp;quot;65&amp;quot;,&amp;quot;66&amp;quot;,&amp;quot;67&amp;quot;,&amp;quot;68&amp;quot;,&amp;quot;69&amp;quot;,&amp;quot;70&amp;quot;,&amp;quot;71&amp;quot;,&amp;quot;72&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
	function checkCentury(m) {&lt;br /&gt;
		return m === mfp;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if ( age1800_1899.find(checkCentury) ) { dfp[&amp;#039;year&amp;#039;] = 18 + yfp; dfp[&amp;#039;month&amp;#039;] = age1900_1999[ age1800_1899.indexOf(mfp) ]; }&lt;br /&gt;
	if ( age1900_1999.find(checkCentury) ) { dfp[&amp;#039;year&amp;#039;] = 19 + yfp; dfp[&amp;#039;month&amp;#039;] = mfp; }&lt;br /&gt;
	if ( age2000_2099.find(checkCentury) ) { dfp[&amp;#039;year&amp;#039;] = 20 + yfp; dfp[&amp;#039;month&amp;#039;] = age1900_1999[ age2000_2099.indexOf(mfp) ]; }&lt;br /&gt;
	if ( age2100_2199.find(checkCentury) ) { dfp[&amp;#039;year&amp;#039;] = 21 + yfp; dfp[&amp;#039;month&amp;#039;] = age1900_1999[ age2100_2199.indexOf(mfp) ]; }&lt;br /&gt;
	if ( age2200_2299.find(checkCentury) ) { dfp[&amp;#039;year&amp;#039;] = 22 + yfp; dfp[&amp;#039;month&amp;#039;] = age1900_1999[ age2200_2299.indexOf(mfp) ]; }&lt;br /&gt;
&lt;br /&gt;
	return dfp;&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * Validates NIP, Polish VAT NO&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
function nipValid(nip) {&lt;br /&gt;
        var weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];&lt;br /&gt;
        nip = nip.replace(/[\s-]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        if (nip.length === 10 &amp;amp;&amp;amp; parseInt(nip, 10) &amp;gt; 0) {&lt;br /&gt;
                var sum = 0;&lt;br /&gt;
                for(var i = 0; i &amp;lt; 9; i++){&lt;br /&gt;
                        sum += nip[i] * weights[i];&lt;br /&gt;
                }&lt;br /&gt;
                return (sum % 11) === Number(nip[9]);&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Validates PESEL, Polish social no&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
function peselValid(pesel){&lt;br /&gt;
	var weights = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7];&lt;br /&gt;
	pesel = pesel.replace(/[\s-]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    if ( pesel.length === 11 &amp;amp;&amp;amp; parseInt(pesel, 11) &amp;gt; 0 ) {&lt;br /&gt;
        var sum = 0;&lt;br /&gt;
        for(var i = 0; i &amp;lt; 10; i++){&lt;br /&gt;
            sum += pesel[i] * weights[i];&lt;br /&gt;
        }&lt;br /&gt;
        return (sum % 10) === Number(pesel[10]);&lt;br /&gt;
    }&lt;br /&gt;
    return false;&lt;br /&gt;
}&lt;br /&gt;
	    &amp;lt;/script&amp;gt;&lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Docker with node ==&lt;br /&gt;
&lt;br /&gt;
* Simple example with node&lt;br /&gt;
** https://nodejs.org/en/docs/guides/nodejs-docker-webapp/&lt;br /&gt;
* Bigger example with mongodb&lt;br /&gt;
** https://github.com/DanWahlin/NodeExpressMongoDBDockerApp&lt;/div&gt;</summary>
		<author><name>Lsokolowski1</name></author>
	</entry>
</feed>