<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>front-end &#8211; The SIGMA</title>
	<atom:link href="https://danushka96.github.io/sigma/index.php/tag/front-end/feed/" rel="self" type="application/rss+xml" />
	<link>https://danushka96.github.io/sigma/</link>
	<description>&#60;For Those Who Code/&#62;</description>
	<lastBuildDate>
	Sat, 02 Mar 2019 16:57:34 +0000	</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.1</generator>
	<item>
		<title>MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 03)</title>
		<link>https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/</link>
				<comments>https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/#respond</comments>
				<pubDate>Wed, 20 Feb 2019 16:28:44 +0000</pubDate>
		<dc:creator><![CDATA[Danushka Herath]]></dc:creator>
				<category><![CDATA[angular.js]]></category>
		<category><![CDATA[mean stack]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[front-end]]></category>

		<guid isPermaLink="false">https://danushka96.github.io/sigma/?p=1906</guid>
				<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">minutes</span></span> අපි කලින් ලිපි 2න් කතා කලා fontend එක සහ backend එක Design කරගන්න විදිය. මේ ලිපියෙන් කතා කරන්නේ මේ වෙන වෙනම හදා ගත්ත fontend එකයි Backend එකයි එකට Connect කරගන්නේ කොහොමද කියලා. කලින් ලිපි 2 බැලුවේ නැත්නම් මෙතනින් බලන්න Part 01part 02 මුලින්ම frontend කියන folder එක ඇතුලට ගිහින් එතනින්<a class="moretag" href="https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/"> Read more&#8230;</a></p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 03)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></description>
								<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">minutes</span></span>
<p>අපි කලින් ලිපි 2න් කතා කලා fontend එක සහ backend එක Design කරගන්න විදිය. මේ ලිපියෙන් කතා කරන්නේ මේ වෙන වෙනම හදා ගත්ත fontend එකයි Backend එකයි එකට Connect කරගන්නේ කොහොමද කියලා. කලින් ලිපි 2 බැලුවේ නැත්නම් මෙතනින් බලන්න</p>



<p><a href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/">Part 01</a><br><a href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/">part 02</a></p>



<p>මුලින්ම frontend කියන folder එක ඇතුලට ගිහින් එතනින් command prompt එකක් open කරන්න. දැන් අපි කරන්න හදන්නේ font එකේ පොඩි වෙනස්කම් කිහිපයක් කරන්න.</p>



<pre class="wp-block-preformatted">cd frontend</pre>



<p>දැන් අපි අලුතින් Issue Service එකක් හදා ගන්න ඕන. ඒ service එක හරහා තමයි අපි Backend එකෙන් අපිට ඕන Data ගන්න සහ දාන්න යන්නේ. මුලින්ම ඒක මේ විදියට Generate කරගමු.</p>



<pre class="wp-block-preformatted">ng g s services/Issue</pre>



<p>මේ විදියට issue service එක generate කරගත්තාම services කියලා folder එකක් ඇතුලේ issue.service.ts කියන file එක generate වෙනවා. දැන් අපි මේ issue service එක app.module.ts එකට import කරගන්න ඕන.</p>



<pre class="wp-block-preformatted"> import { IssueService } from './services/issue.service'; <br></pre>



<p>ඒ වගේම providers array එක ඇතුලටත් මේක දාගන්න. </p>



<pre class="wp-block-preformatted">providers: [IssueService]</pre>



<p>මේකෙත් මේ issue Service එක අපේ components ඇතුලේ use කරන්න පුළුවන් වෙනවා.</p>



<h3 id="9ff5">Implementing IssueService</h3>



<p>කලින් කිවුවා වගේ මේ issue Service එකේ අරමුණ තමයි backend එකත් එක්ක ගනුදෙනු කිරීම. ඒකට අපි http requests යොදා ගන්නවා. ඒක නිසා මේ විදියට මුලින්ම issue.service.ts file එකට httpClient එක import කරගන්න. </p>



<pre class="wp-block-preformatted">import { HttpClient } from '@angular/common/http';</pre>



<p>ඒ වගේම Constructor එකට මේ http service එක inject කරගන්න මේ විදියට</p>



<pre class="wp-block-preformatted">constructor(private http: HttpClient) {}</pre>



<h3 id="def9">Retrieving Issues</h3>



<p>අපි දැන් බලමු කොහොමද Database එකේ save වෙලා තියෙන issue එකක් හෝ කිහිපයක් Backend එක හරහා Retrieve කරන්නේ කොහොමද කියලා.</p>



<p>මේකෙ වර්ග 2ක් තියෙනවා. ඒ කියන්නේ අපි issue ID එකක් දුන්නාම අදාල issue එක ගන්න එකයි තියෙන ඔක්කොම Issues ටික ගන්න එකයි. මේ method 2 හදා ගන්න විදිය බලමු. </p>



<pre class="wp-block-preformatted"> import { Injectable } from '@angular/core';<br> import { HttpClient } from '@angular/common/http';<br><br> @Injectable({<br>   providedIn: 'root'<br> })<br><br> export class IssueService {<br>   uri = 'http://localhost:4000/';<br>   constructor(private http: HttpClient) {<br>   }<br>   getIssues() {<br>     return this.http.get(<code>${this.uri}/issues</code>);<br>   }<br>   getIssueById(id) {<br>     return this.http.get(<code>${this.uri}/issues/${id}</code>);<br>   }<br> }</pre>



<p>මේකෙදි අපි කරන්නේ http://localhost:4000/issues කියන backend එක response කරන url එකට get request එකක් යවලා json object එකක් විදියට result එකක් ගන්නවා. getIssueById method එකෙන් කරන්නෙත් ඒ වගේම issue id එක දුන්නම අදාල issue එක josn object එකක් විදියට එළියට ගන්නවා.</p>



<h3 id="04da">Adding Issues</h3>



<p>මේකෙදි අපි post request එකක් විදියට අපිට add කරන්න ඕන issue එකේ Data ටික යවන්න ඕන. ඒක කරන්නේ මේ විදියට..</p>



<pre class="wp-block-preformatted">   addIssue(title, responsible, description, severity) {<br>     const issue = {<br>       title: title,<br>       responsible: responsible,<br>       description: description,<br>       severity: severity<br>     };<br>     return this.http.post(<code>${this.uri}/issues/add</code>, issue);<br>   }</pre>



<p>ඔයාලට පේනවා ඇති මෙතනදි අපි post request එකත් එක්ක issue කියලා අපි අලුතින් හදා ගත්ත object එකත් යවනවා. මේ request එක යැවුවට පස්සේ එතනින් එහාට Backend එක තමයි Database operations handle කරගන්නේ. මතක ඇති අපි කලින් මේ methods ටික backend එකේ implement කලා. </p>



<h3 id="9b4b">Updating Issues</h3>



<p>කලින් කරපු addIssue එක වගේම post request එකක් යවනවා මේකෙත් Update වෙන්න ඕන dataත් එක්ක.</p>



<pre class="wp-block-preformatted">updateIssue(id, title, responsible, description, severity, status) {<br>     const issue = {<br>       title: title,<br>       responsible: responsible,<br>       description: description,<br>       severity: severity,<br>       status: status<br>     };<br>     return this.http.post(<code>${this.uri}/issues/update/${id}</code>, issue);<br>   }</pre>



<h3 id="a9b4">Deleting Issues</h3>



<p>මේකෙදි අපි කරන්නේ අපිට Delete කරන්න ඕන issue එකේ id එක get request එකක් විදියට යනවනවා backend එකට</p>



<pre class="wp-block-preformatted">deleteIssue(id) {<br>   return this.http.get(<code>${this.uri}/issues/delete/${id}</code>);<br>}</pre>



<p>මේ පහලින් තියෙන්නේ සම්පූර්ණ issue service file එකේ තියෙන code එක.</p>



<pre class="wp-block-preformatted"> import { Injectable } from '@angular/core';<br> import { HttpClient } from '@angular/common/http';<br><br> @Injectable({<br>   providedIn: 'root'<br> })<br><br> export class IssueService {<br>   uri = 'http://localhost:4000/';<br>   constructor(private http: HttpClient) {<br>   }<br>   addIssue(title, responsible, description, severity) {<br>     const issue = {<br>       title: title,<br>       responsible: responsible,<br>       description: description,<br>       severity: severity<br>     };<br>     return this.http.post(<code>${this.uri}/issues/add</code>, issue);<br>   }<br>   getIssues() {<br>     return this.http.get(<code>${this.uri}/issues</code>);<br>   }<br>   getIssueById(id) {<br>     return this.http.get(<code>${this.uri}/issues/${id}</code>);<br>   }<br>   updateIssue(id, title, responsible, description, severity, status) {<br>     const issue = {<br>       title: title,<br>       responsible: responsible,<br>       description: description,<br>       severity: severity,<br>       status: status<br>     };<br>     return this.http.post(<code>${this.uri}/issues/update/${id}</code>, issue);<br>   }<br>   deleteIssue(id) {<br>     return this.http.get(<code>${this.uri}/issues/delete/${id}</code>);<br>   }<br> }</pre>



<h3 id="e28c">Injecting The&nbsp;Service</h3>



<p>දැන් කරන්න තියෙන්නේ අපි හදපු issue Service එක inject කරගන්න එක. ඒකට අපි හදපු හැම component එකේම (list.component.ts, edit.component.ts and create.component.ts)  මේ විදියට දාගෙන යන්න.</p>



<pre class="wp-block-preformatted">import { IssueService } from '../../services/issue.service';</pre>



<p>ඒ වගේම මේ විදියට dependency injection එකක් කරන්නත් ඕන</p>



<pre class="wp-block-preformatted"> constructor(private issueService: IssueService, private router: Router) { }</pre>



<p>හැම component එකේම මේ විදියට හදා ගත්තාම අපේ components Design කරගන්න එකේ මූලික පියවර ඉවරයි.</p>



<p>අපි මේ ලිපියෙදි ඉගෙන ගත්තේ angular service එකක් හරහා backend එකත් එක්ක fontend එක connect කරන්නේ කොහොමද කියලා. ඊළඟ ලිපියෙන් අපි කතා කරමු front-end එක complete කරගන්නේ කොහොමද කියලා. මේ දක්වා මොනවා හරි අවුලක් තිබුණොත් comment එකක් දාන්න.</p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 03)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></content:encoded>
							<wfw:commentRss>https://danushka96.github.io/sigma/index.php/2019/02/20/mean-stack-sample-application-design-part-03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 02)</title>
		<link>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/</link>
				<comments>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/#respond</comments>
				<pubDate>Tue, 19 Feb 2019 16:06:27 +0000</pubDate>
		<dc:creator><![CDATA[Danushka Herath]]></dc:creator>
				<category><![CDATA[angular.js]]></category>
		<category><![CDATA[mean stack]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[issueTracker]]></category>

		<guid isPermaLink="false">https://danushka96.github.io/sigma/?p=1900</guid>
				<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">6</span> <span class="rt-label rt-postfix">minutes</span></span> අපි කලින් ලිපියෙන් කතා කලා කොහොමද FrontEnd එක angular වලින් Design කරගන්නේ කියලා. ඇත්තටම අපි නිකත් Structure එකක් විතරයිනෙ හැදුවේ. දැනට ඒ ඇති. මේ ලිපියෙන් කතා කරන්නේ Node වලින් Backend එක හදා ගන්න විදිය ගැන. බලමු හදා ගන්නේ කොහොමද කියලා. මුලින්ම අපි කලින් fontEnd කියලා අලුත් Project එකක් හැදුව තැනම<a class="moretag" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/"> Read more&#8230;</a></p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 02)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></description>
								<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">6</span> <span class="rt-label rt-postfix">minutes</span></span>
<p></p>



<p>අපි <a href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/">කලින් ලිපියෙන්</a> කතා කලා කොහොමද FrontEnd එක angular වලින් Design කරගන්නේ කියලා. ඇත්තටම අපි නිකත් Structure එකක් විතරයිනෙ හැදුවේ. දැනට ඒ ඇති. මේ ලිපියෙන් කතා කරන්නේ Node වලින් Backend එක හදා ගන්න විදිය ගැන. බලමු හදා ගන්නේ කොහොමද කියලා.</p>



<p>මුලින්ම අපි කලින් fontEnd කියලා අලුත් Project එකක්  හැදුව තැනම අලුත් folder එකක් හදනවා Backend කියලා මේ විදියට.</p>



<pre class="wp-block-preformatted">mkdir backend </pre>



<p>දැන් මම ඉන්න Directory එක වෙනස් කර ගන්නවා අලුතින් හදපු Folder එකට</p>



<pre class="wp-block-preformatted">cd backend </pre>



<p>දැන් අලුත් project එකක් initialise කරගන්නවා මේ විදියට npm command එකෙන්.</p>



<pre class="wp-block-preformatted"> npm init -y </pre>



<p>අපේ project එකේ <a href="https://dev.to/dhruv/writing-es6-in-your-nodejs-applications-33jk">ES6 Features</a> යොද ගන්න නම් අපිට Babel compiler එක use කරන්න වෙනවා. ඒකට  babel-cli එක සහ babel-preset-env එක මේ විදියට install කරගන්න පුළුවන්.</p>



<pre class="wp-block-preformatted"> npm install --save-dev babel-cli babel-preset-env </pre>



<p>මේක install වෙලා ඉවර වුණාට පස්සේ අපි කරන්නේ Babel config file එක හදා ගන්න එක. ඒකට .babelrc නමින් අලුත් file එකක් හදලා ඒකේ content එක විදියට මේක දාගන්න. </p>



<pre class="wp-block-preformatted"><code>{<br>  "presets": ["env"]<br>}</code> </pre>



<p>හරි දැන් Babel compiler එක use කරන්න අපිට පුළුවන්</p>



<h3 id="169d">Installing babel-watch</h3>



<p>මේක අපි යොදා ගන්නේ code එකේ change එකක් වෙනකොට autoම server එක restart කර ගන්න. ඒක ගොඩක් ලේසියි Manual restart කරනවට වඩා. මේක Install කරගන්නේ මෙහෙමයි.</p>



<pre class="wp-block-preformatted"> npm install babel-watch --save-dev </pre>



<p>ඊට පස්සේ අපි කරන්න ඕන Package.json එකට මේක add කරගන්න එක. ඒකට package.json file එක open කරගෙන මේක paste කරගන්න scripts කියලා තියෙන කොටස ඇතුලෙ.</p>



<pre class="wp-block-preformatted"> <br><code>"scripts": {<br>    "dev": "babel-watch server.js"<br>  }</code> </pre>



<p>මේක අපි add කරේ මේ ලිපියේ අන්තිමට අපි server එක start කරන්න මේ command එක use කරන නිසා. </p>



<h3 id="a925">Installing Express</h3>



<p>අපි දැන් Express Framework එක add කරගන්න යන්නේ. මේ steps ටික follow කරන්න</p>



<pre class="wp-block-preformatted"> npm install express </pre>



<p>අපි database එකක් විදියට යොදා ගන්න mogodb driver එකත් මේ විදියට install කරගන්න.</p>



<pre class="wp-block-preformatted"> npm install mongoose </pre>



<p>ඒ වගේම මේකෙදි අපි backend එකේ ඉදන් frontend එකට data යවනවා. ඒක නිසා අපිට ඕන වෙනවා cors package එකත්.</p>



<pre class="wp-block-preformatted"> npm install cors </pre>



<p>මේ cors කියන package එක Express server එකට middleware එකක් විදියට වැඩ කරනවා. ඒ කියන්නේ Cross-Origin Resource Sharing මේකෙදි වෙන්නේ මොකක් හරි request එකක header එකේ අපි allow කරලා තියෙන content එකක් තියෙනවද කියලා බලනවා Domain එකෙන් පිටින් එන requests වලට.</p>



<h3 id="1b57">Implementing The&nbsp;Server</h3>



<p>අපෙ Baisc Packages Installation එක ඉවර වුණාට පස්සේ අපි දැන් බලන්න හදන්නේ Server එක implement කරගන්න විදිය. </p>



<h4 id="4908">Implementing A Basics Node.js/Express Server</h4>



<p>මුලින්ම අපි බලමු Baisc server එකක් හදා ගන්න විදිය.. මේකට project එකට අලුතින් file එකක් add කරන්න ඕන server.js කියලා. ඒකේ content එක මේ වගේ හදා ගන්න.</p>



<pre class="wp-block-preformatted"><br><code>import express from 'express';</code><br><code>const app = express();<br>app.get('/', (req, res) =&gt; res.send('Hello World!'));<br>app.listen(4000, () =&gt; console.log(`Express server running on port 4000`));</code> </pre>



<p>දැන් අපි මේක run කරලා බලමු. ඒකට මේ command එක use කරන්න. </p>



<pre class="wp-block-preformatted">npm run dev<br></pre>



<p>මේ dev කියන වචනේ භිවිතා කරන්න පුළුවන් වුණේ අපි කලින් package.json එකට add කරපු නිසා. දැන් මේ url එක ( http://localhost:4000/ ) web browser එකක් දැම්මොත් අපිට hello wold කියලා output එකක් බලා ගන්න පුළුවන්.</p>



<p>මොනවා හරි error එකක් ආවොත් fix කරගන්න try එකක් දීලා බැරි වුනොත් node_modules කියන folder එක backend එකේන delete කරලා package.json එක මේ විදියට හදාගෙන npm install කියන command එක run කරගන්න. </p>



<pre class="wp-block-preformatted">{<br>  "name": "backEnd",<br>  "version": "1.0.0",<br>  "description": "",<br>  "main": "index.js",<br>  "scripts": {<br>    "test": "echo \"Error: no test specified\" &amp;&amp; exit 1",<br>    "dev": "babel-watch server.js"<br>  },<br>  "keywords": [],<br>  "author": "",<br>  "license": "ISC",<br>  "devDependencies": {<br>    "babel-cli": "^6.26.0",<br>    "babel-preset-env": "^1.7.0",<br>    "babel-watch": "^2.0.8"<br>  },<br>  "dependencies": {<br>    "cors": "^2.8.5",<br>    "express": "^4.16.4",<br>    "mongoose": "^5.4.13"<br>  }<br>}<br></pre>



<h3 id="0c6d">Extending The Server Implementation</h3>



<p>දැන් අපි කරන්න යන්නේ මේ server එක අපිට ඕන විදියට වැඩි දියුණු කරගන්න එක. මේකෙදි අපි ප්‍රධාන Task 5ක් කරන්න යනවා. ඒවා තමයි</p>



<ul><li>GET request එකකින් list එක retrieve කරගන්න එක</li><li>GET request එකකින් issue id එකකට අදාල record එකක් ගන්න එක</li><li>POST request එකකින් අලුත් issue එකක් insert කරගන්න එක</li><li>POST request එකකින් දැනට තියෙන record එකක් update කරගන්න එක</li><li>GET request එකකින් issue එකක් delete කරගන්න එක</li></ul>



<p>මුලින් අපි හදපු server.js එක මේ විදියට හදා ගන්න.</p>



<pre class="wp-block-preformatted">const app = express();<br> const router = express.Router();<br><br> app.use(cors());<br> app.use(bodyParser.json());<br><br> mongoose.connect('mongodb://[server]/issues');<br> const connection = mongoose.connection;<br><br> connection.once('open', () =&gt; {<br>     console.log('MongoDB database connection established successfully!');<br> });<br><br> app.use('/', router);<br> app.listen(4000, () =&gt; console.log(<code>Express server running on port 4000</code>));</pre>



<p>මේකෙ mongoose.connect එක ඇතුලෙ තියෙන server එක වෙනුවට ඔයගෙ තියෙන remote server එකක් නැත්නම් local mongo server එක දාගන්න. local server එකක් නම් server වෙනුවට local කියලා දාගන්න. ඒ වගේම ඔයාගෙ mongo server එක ඇතුලේ issues කියලා අලුත් collection එකකුත් හදා ගන්න. </p>



<p>අපිට හැම තිස්සෙම issues refer කරන්න වෙන නිසා දැන් කරන්න හදන්නේ අලුතින් issue කියලා model එකක් හදා ගන්න එක. ඒකට ඔයාගෙ backend folder එක ඇතුලේ අලුතින් <strong>models&nbsp;</strong>කියලා folder එකක් හදාගෙන ඒක ඇතුලේ <strong>Issue.js&nbsp;</strong>කියලා file එකක් create කරගන්න. ඒකේ content එකට මේක paste කරගන්න. මෙකෙ අපි ලියන්නේ අපේ issue එකට ඕන කරන properties ටික.</p>



<pre class="wp-block-preformatted"> import mongoose from 'mongoose';<br> const Schema = mongoose.Schema;<br> let Issue = new Schema({<br>     title: {<br>         type: String<br>     },<br>     responsible: {<br>         type: String <br>     },<br>     description: {<br>         type: String<br>     },<br>     severity: {<br>         type: String<br>     },<br>     status: {<br>         type: String,<br>         default: 'Open'<br>     }<br> });<br> export default mongoose.model('Issue', Issue);</pre>



<p>දැන් අපි මේ හදා ගත්ත අලුත් model එක server.js එකට import කරගන්න ඕන. ඒකට Server.js එකේ මේ විදියට import command එකක් උඩින් ලියා ගන්න</p>



<pre class="wp-block-preformatted">import Issue from './models/Issue';</pre>



<h3 id="aaa0">Retrieving All&nbsp;Issues</h3>



<p>අපි දැන් කරන්න යන්නේ අපෙ පළවෙනි task එක. ඒ කියන්නේ issues list එකම retrieve කරගන්න එක. ඒකට මේ Code එක server.js එකේ ලියා ගන්න. </p>



<pre class="wp-block-preformatted"> router.route('/issues').get((req, res) =&gt; {<br>     Issue.find((err, issues) =&gt; {<br>         if (err)<br>             console.log(err);<br>         else<br>             res.json(issues);<br>     });<br> });</pre>



<p>මේකෙ වෙන වැඩේ සරලවම කිවුවොත් router එකට &#8216;/issues&#8217; කියලා get request එකක් ආවොත් එයා Issue කියන Schema එකේ තියෙන records ඔක්කොම අරගෙන json response එකක් විදියට එළියට දෙනවා. ඕන නම් ඔයාලට පුළුවන් මේ Code එක වෙනස් කර කර බලන්න මොන වගේ දේවල්ද කරන්න පුුළුවන් කියලා. </p>



<p>මම මේ වගේ Methods ඔක්කොම ලියන විදිය කියලා අන්තිමට server.js එකේ තියෙන්න ඕන content එක දාන්නම්</p>



<h3 id="7fc2">Retrieving An Issue By&nbsp;ID</h3>



<p>මේකෙදි කරන්නේ අපි issue එකේ id එක දුන්නාම ඒ ID එකට අදාල record එක විතරක් අරගෙන දෙන ඒක. ඒක ලියන්නේ මෙහෙමයි.</p>



<pre class="wp-block-preformatted">router.route('/issues/:id').get((req, res) =&gt; {<br>     Issue.findById(req.params.id, (err, issue) =&gt; {<br>         if (err)<br>             console.log(err);<br>         else<br>             res.json(issue);<br>     })<br> });</pre>



<p>:id එකෙන් කියන්නේ අපිට හොයා ගන්න ඕන කරන id එක router parameter එකක් විදියට දෙනවා කියල. එතකොට අපි කලින් කතා කලා වගේ Schema එකට කියනවා අදාල id එක තියෙන record එක json object එකක් විදියට එලියට දෙන්න කියල.</p>



<h3 id="e24e">Adding New&nbsp;Issues</h3>



<p>අපි කලින් ක්‍රම දෙකේදිම කතා කලේ GET method එකෙන් data එකක් ගන්න විදිය. හැබැයි දැන් අපිට ඕන වෙනවා අලුතින් data එකක් නැත්නම් issue එකක් store කරගන්න. ඒකට අපිට data එක යවන්න වෙන නිසා අපිට post method එක යොදා ගන්න සිද්ධ වෙනවා. ඒක කරන්නේ මෙහෙමයි</p>



<pre class="wp-block-preformatted">router.route('/issues/add').post((req, res) =&gt; {<br>     let issue = new Issue(req.body);<br>     issue.save()<br>         .then(issue =&gt; {<br>             res.status(200).json({'issue': 'Added successfully'});<br>         })<br>         .catch(err =&gt; {<br>             res.status(400).send('Failed to create new record');<br>         });<br> });</pre>



<p>මේ විදියට එක post request එකේ body එකේ තියෙන data ටිකෙන් අපි අලුත් issue object එකක් හදලා ඒක db එකේ save කරගන්නවා.</p>



<h3 id="3f19">Updating Issues</h3>



<p>මේකෙදි අපිට වැඩ දෙකක් කරන්න වෙනවා. මුලින් අපි දෙන ID එකට අදාල record එක හොයා ගන්න වෙනවාත ඊට පස්සේ ඒකෙ තියෙන Data වෙනුවට අපි අලුතින් එවන ඒවා දාලා ඒක save කරන්න වෙනවා. මේ වැඩේ කරගන්නේ කොහොමද කියලා බලමු. </p>



<pre class="wp-block-preformatted">router.route('/issues/update/:id').post((req, res) =&gt; {<br>     Issue.findById(req.params.id, (err, issue) =&gt; {<br>         if (!issue)<br>             return next(new Error('Could not load Document'));<br>         else {<br>             issue.title = req.body.title;<br>             issue.responsible = req.body.responsible;<br>             issue.description = req.body.description;<br>             issue.severity = req.body.severity;<br>             issue.status = req.body.status;<br>             issue.save().then(issue =&gt; {<br>                 res.json('Update done');<br>             }).catch(err =&gt; {<br>                 res.status(400).send('Update failed');<br>             });<br>         }<br>     });<br> });</pre>



<p>ඔයාලට පේනවා ඇති අපි මුලින්ම දෙන ID එකට අදාල records තියෙනවද කියලා check කරලා හම්බ වුණේ නැත්නම් error එකක් දෙනවා. හම්බවුණොත් අපි එකින් එක replace කරගෙන යනවා අපි දෙන අලුත් data set එක්ත් එක්ක. </p>



<h3 id="3ef0">Deleting Issues</h3>



<p>මේක ගොඩක් සරලයි. සාමාන්‍ය විදියට id එකකින් අදාල issue එක හොයාගෙන delete කරලා දාන්න තියෙන්නේ. අපි data එවන්නේ නැති නිසා සාමාන්‍ය get request එකක් මේකට භවිතා කරන්න පුළුවන්. </p>



<pre class="wp-block-preformatted">router.route('/issues/delete/:id').get((req, res) =&gt; {<br>     Issue.findByIdAndRemove({_id: req.params.id}, (err, issue) =&gt; {<br>         if (err)<br>             res.json(err);<br>         else<br>             res.json('Removed successfully');<br>     });<br> });</pre>



<p>මේක ඉවර වුණාම අපේ Basic task ටික ඉවර වෙනවා. දැන් අපි බලමු අන්තිමට අපිට හැදිලා තියෙන server.js එක මොන වගේ එකක්ද කියලා. මේක දිහා බලලා ඔයාලගේ code එකේ අඩුපාඩු තිබුණොත් හදාගන්න.</p>



<pre class="wp-block-preformatted"> import express from 'express';<br> import cors from 'cors';<br> import bodyParser from 'body-parser';<br> import mongoose from 'mongoose';<br> import Issue from './models/Issue';<br> const app = express();<br> const router = express.Router();<br> app.use(cors());<br> app.use(bodyParser.json());<br> mongoose.connect('mongodb://[server]/issues');<br> const connection = mongoose.connection;<br> connection.once('open', () =&gt; {<br>     console.log('MongoDB database connection established successfully!');<br> });<br> router.route('/issues/add').post((req, res) =&gt; {<br>     let issue = new Issue(req.body);<br>     issue.save()<br>         .then(issue =&gt; {<br>             res.status(200).json({'issue': 'Added successfully'});<br>         })<br>         .catch(err =&gt; {<br>             res.status(400).send('Failed to create new record');<br>         });<br> });<br> router.route('/issues').get((req, res) =&gt; {<br>     Issue.find((err, issues) =&gt; {<br>         if (err)<br>             console.log(err);<br>         else<br>             res.json(issues);<br>     });<br> });<br> router.route('/issues/:id').get((req, res) =&gt; {<br>     Issue.findById(req.params.id, (err, issue) =&gt; {<br>         if (err)<br>             console.log(err);<br>         else<br>             res.json(issue);<br>     })<br> });<br> router.route('/issues/update/:id').post((req, res) =&gt; {<br>     Issue.findById(req.params.id, (err, issue) =&gt; {<br>         if (!issue)<br>             return next(new Error('Could not load Document'));<br>         else {<br>             issue.title = req.body.title;<br>             issue.responsible = req.body.responsible;<br>             issue.description = req.body.description;<br>             issue.severity = req.body.severity;<br>             issue.status = req.body.status;<br>             issue.save().then(issue =&gt; {<br>                 res.json('Update done');<br>             }).catch(err =&gt; {<br>                 res.status(400).send('Update failed');<br>             });<br>         }<br>     });<br> });<br> router.route('/issues/delete/:id').get((req, res) =&gt; {<br>     Issue.findByIdAndRemove({_id: req.params.id}, (err, issue) =&gt; {<br>         if (err)<br>             res.json(err);<br>         else<br>             res.json('Removed successfully');<br>     });<br> });<br> app.use('/', router);<br> app.listen(4000, () =&gt; console.log(<code>Express server running on port 4000</code>));</pre>



<h2> Testing The Server With&nbsp;Postman </h2>



<p>Node වලින් backend එක හදා ගත්තට පස්සේ අපිට test කරගන්න පුළුවන් tool එකක් තමයි PostMan කියන්නේ. ඒක නැත්නම් <a href="https://www.getpostman.com/">මෙතනින් </a>Download කරගන්න. ඒකෙන් අපේ backend එකෙන් එලියට Data ගන්න පුළුවන්ද කියලා check කරගන්න පුළුවන්. </p>



<figure class="wp-block-image"><img src="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_LjsHj5lPDNO0Ehdl.png" alt="" class="wp-image-1903" srcset="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_LjsHj5lPDNO0Ehdl.png 800w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_LjsHj5lPDNO0Ehdl-300x191.png 300w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_LjsHj5lPDNO0Ehdl-768x490.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>Install කරගෙන ඉවර වුණාට පස්සේ node server එක run කරලා මේ වගේ request ගහලා බලන්න අපි හදපු routes වලට data එනවද කියලා</p>



<figure class="wp-block-image"><img src="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_m3eRdTp5VIQ89PFg.png" alt="" class="wp-image-1904" srcset="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_m3eRdTp5VIQ89PFg.png 800w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_m3eRdTp5VIQ89PFg-300x191.png 300w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/0_m3eRdTp5VIQ89PFg-768x490.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>හරි මේ ලිපියෙන් අපි කතා කලේ Backend එක Nodejs වලින් Design කරගන්නේ කොහොමද කියලා. තේරුණේ නැති තැනක් තියෙනවා නම් Message එකක් දාන්න. ඊළඟ ලිපියෙන් කතා කරන්නේ අපි හදා ගත්ත Front එකයි Back එකයි Connect කරගන්න විදිය ගැන&#8230; </p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 02)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></content:encoded>
							<wfw:commentRss>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-design-part-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 01)</title>
		<link>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/</link>
				<comments>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/#comments</comments>
				<pubDate>Tue, 19 Feb 2019 13:19:30 +0000</pubDate>
		<dc:creator><![CDATA[Danushka Herath]]></dc:creator>
				<category><![CDATA[angular.js]]></category>
		<category><![CDATA[mean stack]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[issueTracker]]></category>
		<category><![CDATA[MEAN]]></category>

		<guid isPermaLink="false">https://danushka96.github.io/sigma/?p=1880</guid>
				<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">4</span> <span class="rt-label rt-postfix">minutes</span></span> අපි කලින් ලිපි කිහිපයකින්ම කතා කලා මේ MEAN Stack ගැන වෙන වෙනම Examples විදියට. මේ ලිපි කිහිපයෙන් කරන්න බලාපොරොත්තු වෙන්නේ මේ වෙන වෙනම කතා කරපු Applications ටික එකතු කරලා තනි Application එකක් හදා ගන්න. මේ Application එක Issue Tacking Application එකක්. ඒ කියන්නේ Users ලට Log වෙලා Issues post කරන්න<a class="moretag" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/"> Read more&#8230;</a></p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 01)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></description>
								<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label">Reading Time: </span> <span class="rt-time">4</span> <span class="rt-label rt-postfix">minutes</span></span>
<p>අපි කලින් ලිපි කිහිපයකින්ම කතා කලා මේ MEAN Stack ගැන වෙන වෙනම Examples විදියට. මේ ලිපි කිහිපයෙන් කරන්න බලාපොරොත්තු වෙන්නේ මේ වෙන වෙනම කතා කරපු Applications ටික එකතු කරලා තනි Application එකක් හදා ගන්න. මේ Application එක Issue Tacking Application එකක්. ඒ කියන්නේ Users ලට Log වෙලා Issues post කරන්න පුළුවන් Application එකක්. </p>



<p>මේ Post එකෙන් කලින් post වලදි වගේ මේ MEAN Stack එක Install කරන විදිය මුල ඉදන් කියන්න යන්නේ නෑ. ඒ ගැන කලින් ලිපි වලින් අපි කතා කලා. ඒ ලිපි බැලුවේ නැත්නම් මේ Link වලින් මුලින්ම ඒ ටික බලලා ඉන්න. </p>



<ul><li><a href="https://danushka96.github.io/sigma/index.php/category/web-development/mean-stack/">MongoDB</a></li><li><a href="https://danushka96.github.io/sigma/index.php/category/web-development/node-js/">Express</a></li><li><a href="https://danushka96.github.io/sigma/index.php/category/web-development/angular-js/">Angular</a></li><li><a href="https://danushka96.github.io/sigma/index.php/category/web-development/node-js/">Node</a></li></ul>



<p>මේ Project එකේ අන්තිමට මොන වගේ Application එකක් හැදෙයිද කියලා Idea එකක් ගන්න මේ Images ටික බලන්න. </p>



<figure class="wp-block-image"><img src="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f5632774672326b2e706e67-1024x341.png" alt="" class="wp-image-1891" srcset="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f5632774672326b2e706e67-1024x341.png 1024w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f5632774672326b2e706e67-300x100.png 300w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f5632774672326b2e706e67-768x256.png 768w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f5632774672326b2e706e67.png 1071w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>All Issues</figcaption></figure>



<figure class="wp-block-image"><img src="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f385869574234702e706e67.png" alt="" class="wp-image-1892" srcset="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f385869574234702e706e67.png 482w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f385869574234702e706e67-269x300.png 269w" sizes="(max-width: 482px) 100vw, 482px" /><figcaption>Create an Issue<br></figcaption></figure>



<p></p>



<figure class="wp-block-image"><img src="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f586d50785a57332e706e67.png" alt="" class="wp-image-1893" srcset="https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f586d50785a57332e706e67.png 487w, https://danushka96.github.io/sigma/wp-content/uploads/2019/02/68747470733a2f2f692e696d6775722e636f6d2f586d50785a57332e706e67-240x300.png 240w" sizes="(max-width: 487px) 100vw, 487px" /><figcaption>Edit an Issue</figcaption></figure>



<p>හරි එහෙනම් අපි මුල ඉඳන් වැඩේ පටන් ගමු..</p>



<p></p>



<h3 id="c3ab"><u>Installing Node.js &amp; Angular&nbsp;CLI</u></h3>



<p></p>



<p>මේ Project එකේ dependencies install කරගන්න ඉදිරියේදී පාවිච්චි කරන්නේ npm package එක. ඒක නිසා මුලින්ම Nodejs Install කරගන්න ඕන. දැනට Nodejs Install කරලා නැත්නම් මේ <a href="https://nodejs.org/ ">Link</a> එකෙන් ගිහින් Download කරගන්න.  </p>



<p>දැන් අපි ළඟ npm එක තියෙන නිසා අපිට පුළුවන් ලේසියෙන්ම අලුන් Angular project එකක් Initialize කරගන්න. ඒකට මේ Command එකෙන් Packages Install කරගන්න.</p>



<pre class="wp-block-preformatted">$ npm install -g @angular/cli

</pre>



<p>මේ command එකෙන් අපේ path variable එකක් හැදෙනවා ng commands වලට Response කරන්න පුළුවන් විදියට. </p>



<p></p>



<h3><u>FRONT-END Design</u></h3>



<p></p>



<p>මේ පළවෙනි ලිපියෙන් කරන්න යන්නේ Front-End එක Design කරගන්න එක. ඒකට මුලින්ම අලුතින් Project එකක් හදා ගන්න ඕන. ඒකට අපි මුලින් Install කරපු ng command එක දැන් භාවිතා කරන්න පුළුවන්. ඒකට මේ Command එක Use කරන්න. (Command Line එකේ)</p>



<pre class="wp-block-preformatted">ng new frontend

</pre>



<p>Project එක හදා ගන්නකොට අපෙන් අහනවා Routing Module එක දාන්න ඕනද කියලා. වැඩේ ලේසි වෙන්න ඒකට yes දෙන්න. අපි මේකට ගන්නේ CSS stylesheets. ඒකත් එතනින් Select කරගන්න. </p>



<p>අදාල Module ටික install වෙලා ඉවර වුණාම font-end කියලා අලුතින් Project එකක් හැදෙයි. ඒකෙ අපේ Font-end එකට අදාල Codes ටික තියා ගන්නේ. දැන් අලුතින් හැදුනු folder එක ඇතුලට ගිහින් ng serve කරලා අලුතින් හැදුනු project එක වැඩ කරනවද කියලා test කරලා බලන්න පුළුවන්.</p>



<pre class="wp-block-preformatted">cd fontend<br>ng serve -o</pre>



<p></p>



<h3> Adding Angular&nbsp;Material </h3>



<p></p>



<p>Interfaces ලස්සනට Design කරගන්න පුළුවන් වෙන්න අපි මේ Project එකට භාවිතා කරනවා Angular Material CSS Library එක. ඒක මේ විදියට Project එකට Add කරගන්න පුළුවන්.</p>



<pre class="wp-block-preformatted">ng add @angular/material

</pre>



<p>මේ Package එක Install වෙනකොට ඔයාගෙන් අහයි මොන වගේ Theme එකක්ද ඕන Animation Use කරන්නද වගේ දේවල්. ඒවට yes select කරලා enter කරන්න. </p>



<p></p>



<h3 id="2ad4">Creating Components</h3>



<p></p>



<p>දැන් අපි හදන්නේ අපිට ඕන කරන Components ටික හදා ගන්න. මේකට අපි ng command එක use කරනවා. </p>



<pre class="wp-block-preformatted">ng g c components/list <br>ng g c components/create<br>ng g c components/edit<br></pre>



<p>මේකෙන් components කියලා folder එකක් හැදිලා ඒක ඇතුලට මේ list, create, edit කියල components 3 create වෙනවා. අපි දැන් බලමු routings ටික හදා ගන්න. </p>



<p></p>



<h3 id="3513">Adding Routing</h3>



<p></p>



<p>දැන් අපි කලාන් හදා ගත්ත RouterModule එකේ තමයි අපිට ඕන කරන routes ටික ලියා ගන්න ඕන. </p>



<p><strong>src -&gt; app -&gt; app-routing.module.ts</strong> file එක open කරගෙන මේ Code එක routes කියන variable එක වෙනුවට replace කරගන්න. </p>



<pre class="wp-block-preformatted"><code>const routes: Routes = [<br>  { path: 'create', component: CreateComponent },<br>  { path: 'edit/:id', component: EditComponent },<br>  { path: 'list', component: ListComponent },<br>  { path: '', redirectTo: '/list', pathMatch: 'full'}<br>];</code> </pre>



<p>මේ විදියට Code එක දාගෙන උඩින්ම අදාල Components Import කරගන්නත් ඕන වෙනවා. </p>



<p>මේ ටික කර ගත්තාම ඔයාගෙ AppRoutingModule එක මේ විදියට තියෙන්න ඕන.</p>



<pre class="wp-block-preformatted"> <br><em>import</em> { NgModule } <em>from</em> '@angular/core';<br><em>import</em> { Routes, RouterModule } <em>from</em> '@angular/router';<br><em>import</em> { CreateComponent } <em>from</em> './components/create/create.component'<br><em>import</em> { EditComponent } <em>from</em> './components/edit/edit.component'<br><em>import</em> { ListComponent } <em>from</em> './components/list/list.component'<br><br>const routes: Routes = [<br>  { path: 'create', component: CreateComponent },<br>  { path: 'edit/:id', component: EditComponent },<br>  { path: 'list', component: ListComponent },<br>  { path: '', redirectTo: '/list', pathMatch: 'full'}<br>];<br><br>@NgModule({<br>  imports: [RouterModule.forRoot(routes)],<br>  exports: [RouterModule]<br>})<br><em>export</em> class AppRoutingModule { }<br></pre>



<p>දැන් අපි කරන්න යන්නේ හැම page එකේම Display වෙන විදියට පොඩි Menu tool එකක් දාගන්න. ඒකට මේ Code එක app.component.html file එකේ Paste කරගන්න. </p>



<pre class="wp-block-preformatted"><br><code>&lt;mat-toolbar&gt;<br>  &lt;span&gt;Angular 6 - MEAN Stack Sample Application&lt;/span&gt;<br>&lt;/mat-toolbar&gt;<br>&lt;div&gt;<br>  &lt;router-outlet&gt;&lt;/router-outlet&gt;<br>&lt;/div&gt;</code> </pre>



<p>අපි මේ Layout එකට &lt;mat-toolbar&gt; කියන tag එක යොදා ගන්න හින්දා මුලින්ම ඒක import කරගන්න ඕන. ඒකට මේ Import command එක app.module.ts එකේ දාන්න</p>



<pre class="wp-block-preformatted"> <br><code>import { MatToolbarModule } from '@angular/material';</code> </pre>



<p>ඒ වගේම ඒකෙ Import Array එකටත් මේක දාගන්න ඕන.</p>



<pre class="wp-block-preformatted"> <br><code>imports: [<br>    ...<br>    MatToolbarModule<br> ],</code> </pre>



<p>අන්තිමට File එකේ Content එක මේ වගේ තියෙන්න ඕන</p>



<p style="text-align:center"><strong><em>app.module.ts</em></strong></p>



<pre class="wp-block-preformatted"><em>import</em> { BrowserModule } <em>from</em> '@angular/platform-browser';<br><em>import</em> { NgModule } <em>from</em> '@angular/core';<br><br><em>import</em> { AppRoutingModule } <em>from</em> './app-routing.module';<br><em>import</em> { AppComponent } <em>from</em> './app.component';<br><em>import</em> { BrowserAnimationsModule } <em>from</em> '@angular/platform-browser/animations';<br><em>import</em> { ListComponent } <em>from</em> './components/list/list.component';<br><em>import</em> { CreateComponent } <em>from</em> './components/create/create.component';<br><em>import</em> { EditComponent } <em>from</em> './components/edit/edit.component';<br><em>import</em> { MatToolbarModule } <em>from</em> '@angular/material'; <br><br>@NgModule({<br>  declarations: [<br>    AppComponent,<br>    ListComponent,<br>    CreateComponent,<br>    EditComponent<br>  ],<br>  imports: [<br>    BrowserModule,<br>    AppRoutingModule,<br>    BrowserAnimationsModule,<br>    MatToolbarModule<br>  ],<br>  providers: [],<br>  bootstrap: [AppComponent]<br>})<br><em>export</em> class AppModule { }<br><br> </pre>



<p style="text-align:center"><strong><em>app.component.html</em></strong></p>



<pre class="wp-block-preformatted">&lt;mat-toolbar&gt;<br>  &lt;span&gt;Angular 6 - MEAN Stack Sample Application&lt;/span&gt;<br>&lt;/mat-toolbar&gt;<br>&lt;div&gt;<br>  &lt;router-outlet&gt;&lt;/router-outlet&gt;<br>&lt;/div&gt;<br><br>&lt;router-outlet&gt;&lt;/router-outlet&gt;<br><br> </pre>



<p>මේක කලාම අපේ Basic Frontend part එක ඉවරයි. ඊළඟ Part එක තමයි අපේ Application එකේ BackEnd එක Design කරගන්න විදිය. ඊළඟ ලිපියෙන් ඒ ගැන කතා කරමු. මේකෙ Installation වල හරි Code වල හරි මොකක් හරි ප්‍රශ්ණයක් ආවොත් Comment එකක් දාන්න. </p>
<p>The post <a rel="nofollow" href="https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/">MEAN Stack වලින් Sample Application එකක් Design කරගමු. (PART 01)</a> appeared first on <a rel="nofollow" href="https://danushka96.github.io/sigma/">The SIGMA</a>.</p>
]]></content:encoded>
							<wfw:commentRss>https://danushka96.github.io/sigma/index.php/2019/02/19/mean-stack-sample-application-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
							</item>
	</channel>
</rss>
