SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Node Meetup 
Tuesday, December 2, 2014
$ whoiam
{ 
name : “Hengki Sihombing” 
email : “hengki.sihombing@gmail.com”, 
twitter : “hengkiardo”, 
github : “aredo” 
} 
module.export =
Kickstarter Your 
Node.JS Application 
http://blog.efvincent.com/wp-content/uploads/2011/06/Capture.png
require(‘express’) 
require(‘mongoose’) 
require(‘passport’) 
require(‘async’) 
require(‘grunt’) 
require(‘demo’) 
require(‘QA’)
Why Node.JS
Answer by your self 
Why you come to this meetup :)
Express.JS 
Fast, unopinionated, minimalist web framework for Node.js 
expressjs.com 
$ npm install express
MVC Framework base on 
Express.JS 
• KrakenJs http://locomotivejs.org/ 
• Locomotive.JS http://locomotivejs.org/ 
• Sails http://locomotivejs.org/ 
• Sleek.JS http://sleekjs.com/ 
• …… 
http://www.quora.com/Why-should-I-use-Express-when-developing-a-web-app-with-Node-js 
http://evanhahn.com/understanding-express/
Why Express.JS ??? 
• Express is a lightweight framework, meaning it does not make too many 
assumptions but gives you enough to avoid re-inventing the wheel. 
• Express is preferred because it adds dead simple routing and support for 
Connect middleware, allowing many extensions and useful features 
• Like any abstraction, Express hides difficult bits and says "don't worry, you 
don't need to understand this part". It does things for you so that you don't 
have to bother. In other words, it's magic 
• https://www.google.com/#q=why+express.js 
http://www.quora.com/Why-should-I-use-Express-when-developing-a-web-app-with-Node-js 
http://evanhahn.com/understanding-express/
Simple Express App
Why Mongoose ? 
• Because it provides easy-to-use methods for interacting with MongoDB. It 
is ORM, actually. It helps you forget about driver's query documentation, 
and focus on your models. 
• Mongoose provides a straight-forward, schema-based solution to modeling 
your application data and includes built-in type casting, validation, query 
building, business logic hooks and more, out of the box. 
• Mongoose provides various functionalities which makes your life easy such 
as
MongoDB Connection with 
Mongoose
https://github.com/jaredhanson/passport 
• 140+ authentication strategies 
• Easily handle success and failure 
• Supports persistent sessions 
• Dynamic scope and permissions 
• Pick and choose required strategies 
• Implement custom strategies 
• Lightweight code base 
•Easy To Use!!
Sample Twitter Auth with Passport
Sample FB Auth with Passport
Sample Linkedin Auth with Passport
Because Javascript 
ASYNCHRONOUS
Promises 
Promises… Promises… Never break your promises. 
Personally, never make promises. 
https://blog.domenic.me/youre-missing-the-point-of-promises

Not part of the Node 
“until latest stable version” 
Makes integration more difficult. 
Makes swapping code in / out more painful. 
Callbacks 
So good it’s got it’s own website callbackhell.com
async 
https://github.com/caolan/async 
Async is a utility module which provides straight-forward, 
powerful functions for working with 
asynchronous JavaScript. Although originally 
designed for use with Node.js, it can also be 
used directly in the browser. 
$ npm install async — save
another build tools: Gulp, Make, NPM, Ant, Maven 
Why use a task runner 
or 
build system?
Automation
Automation isn’t about being 
lazy. 
It’s about being efficient
Before you get started 
$ npm install -g grunt-cli 
$ npm install —save-dev grunt
package.json to manage dependencies
Grunt Overview
Demo 
https://express4-bootstrap-starter.herokuapp.com/ 
https://github.com/aredo/express4-bootstrap-starter 
$ git clone git@github.com:aredo/express4-bootstrap-starter.git
QA! 
{ 
name : “Hengki Sihombing” 
email : “hengki.sihombing@gmail.com”, 
twitter : “hengkiardo”, 
github : “aredo” 
} 
module.export =

Weitere ähnliche Inhalte

Was ist angesagt?

Wordpress as a Backend
Wordpress as a BackendWordpress as a Backend
Wordpress as a BackendAndrew Duthie
 
Lazy angular w/ webpack
Lazy angular w/ webpackLazy angular w/ webpack
Lazy angular w/ webpackRich Snapp
 
Create a module bundler from scratch
Create a module bundler from scratchCreate a module bundler from scratch
Create a module bundler from scratchSing Ming Chen
 
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유민환 조
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
JavaScript development methodology
JavaScript development methodologyJavaScript development methodology
JavaScript development methodologyAleksander Fabijan
 
React brief introduction
React brief introductionReact brief introduction
React brief introductionPrograils.com
 
JSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsJSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsSpike Brehm
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and BeyondBuilding a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and BeyondSpike Brehm
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingVlad Filippov
 
Introduction to PhantomJS
Introduction to PhantomJSIntroduction to PhantomJS
Introduction to PhantomJSErol Selitektay
 
Ryan Markel - WordCamp StL 2016 - Code Review
Ryan Markel - WordCamp StL 2016 - Code ReviewRyan Markel - WordCamp StL 2016 - Code Review
Ryan Markel - WordCamp StL 2016 - Code Reviewryanmarkel
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End PerformanceChris Love
 
Web development using nodejs
Web development using nodejsWeb development using nodejs
Web development using nodejsVaisakh Babu
 
Isomorphic web application
Isomorphic web applicationIsomorphic web application
Isomorphic web applicationOliver N
 
Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Bronson Quick
 

Was ist angesagt? (19)

Wordpress as a Backend
Wordpress as a BackendWordpress as a Backend
Wordpress as a Backend
 
Lazy angular w/ webpack
Lazy angular w/ webpackLazy angular w/ webpack
Lazy angular w/ webpack
 
Create a module bundler from scratch
Create a module bundler from scratchCreate a module bundler from scratch
Create a module bundler from scratch
 
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
JavaScript development methodology
JavaScript development methodologyJavaScript development methodology
JavaScript development methodology
 
React brief introduction
React brief introductionReact brief introduction
React brief introduction
 
JSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsJSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic Apps
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and BeyondBuilding a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
Introduction to PhantomJS
Introduction to PhantomJSIntroduction to PhantomJS
Introduction to PhantomJS
 
Bower power
Bower powerBower power
Bower power
 
Ryan Markel - WordCamp StL 2016 - Code Review
Ryan Markel - WordCamp StL 2016 - Code ReviewRyan Markel - WordCamp StL 2016 - Code Review
Ryan Markel - WordCamp StL 2016 - Code Review
 
The Onion
The OnionThe Onion
The Onion
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
Web development using nodejs
Web development using nodejsWeb development using nodejs
Web development using nodejs
 
Isomorphic web application
Isomorphic web applicationIsomorphic web application
Isomorphic web application
 
Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!
 

Andere mochten auch

ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA I
ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA IARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA I
ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA Idamesdejuliol
 
Presentazione easy fairs
Presentazione easy fairsPresentazione easy fairs
Presentazione easy fairseasyfairsitaly
 
ARTICLES SOBRE DONES I SETMANA TRÀGICA I
ARTICLES SOBRE DONES I SETMANA TRÀGICA IARTICLES SOBRE DONES I SETMANA TRÀGICA I
ARTICLES SOBRE DONES I SETMANA TRÀGICA Idamesdejuliol
 
Isomorphic Aplication with Javascript
Isomorphic Aplication with JavascriptIsomorphic Aplication with Javascript
Isomorphic Aplication with JavascriptHengki Sihombing
 
Rapsodii de toamna in viziunea copiilor
Rapsodii de toamna in viziunea copiilorRapsodii de toamna in viziunea copiilor
Rapsodii de toamna in viziunea copiiloriaya
 
Amintiri din Spania
Amintiri din SpaniaAmintiri din Spania
Amintiri din Spaniaiaya
 
Create a RESTful API with NodeJS, Express and MongoDB
Create a RESTful API with NodeJS, Express and MongoDBCreate a RESTful API with NodeJS, Express and MongoDB
Create a RESTful API with NodeJS, Express and MongoDBHengki Sihombing
 
Metoda Mozaicul
Metoda MozaiculMetoda Mozaicul
Metoda Mozaiculiaya
 

Andere mochten auch (15)

ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA I
ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA IARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA I
ARTICLES SOBRE LES DONES A LA SETMANA TRÀGICA I
 
484 11 12_10
484 11 12_10484 11 12_10
484 11 12_10
 
Presentazione easy fairs
Presentazione easy fairsPresentazione easy fairs
Presentazione easy fairs
 
ARTICLES SOBRE DONES I SETMANA TRÀGICA I
ARTICLES SOBRE DONES I SETMANA TRÀGICA IARTICLES SOBRE DONES I SETMANA TRÀGICA I
ARTICLES SOBRE DONES I SETMANA TRÀGICA I
 
About Me
About MeAbout Me
About Me
 
Les dades
Les dadesLes dades
Les dades
 
Isomorphic Aplication with Javascript
Isomorphic Aplication with JavascriptIsomorphic Aplication with Javascript
Isomorphic Aplication with Javascript
 
3 6 Notes
3 6 Notes3 6 Notes
3 6 Notes
 
484 2010 12_08
484 2010 12_08484 2010 12_08
484 2010 12_08
 
Rapsodii de toamna in viziunea copiilor
Rapsodii de toamna in viziunea copiilorRapsodii de toamna in viziunea copiilor
Rapsodii de toamna in viziunea copiilor
 
488 11 12_10
488 11 12_10488 11 12_10
488 11 12_10
 
Amintiri din Spania
Amintiri din SpaniaAmintiri din Spania
Amintiri din Spania
 
Create a RESTful API with NodeJS, Express and MongoDB
Create a RESTful API with NodeJS, Express and MongoDBCreate a RESTful API with NodeJS, Express and MongoDB
Create a RESTful API with NodeJS, Express and MongoDB
 
Metoda Mozaicul
Metoda MozaiculMetoda Mozaicul
Metoda Mozaicul
 
484 2010 11_22
484 2010 11_22484 2010 11_22
484 2010 11_22
 

Ähnlich wie Kickstarter Your Node.JS Application

Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.jsChris Cowan
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsasync_io
 
Introduction to node.js by jiban
Introduction to node.js by jibanIntroduction to node.js by jiban
Introduction to node.js by jibanJibanananda Sana
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Matt Raible
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebChris Canal
 
Building a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntBuilding a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntAshley Roach
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJSHüseyin BABAL
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017Matt Raible
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript WidgetsBob German
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1Mohammad Qureshi
 
Develop & Deploy Node.js app on Windows Azure
Develop & Deploy Node.js app on Windows AzureDevelop & Deploy Node.js app on Windows Azure
Develop & Deploy Node.js app on Windows AzureAndri Yadi
 
OWASP SF - Reviewing Modern JavaScript Applications
OWASP SF - Reviewing Modern JavaScript ApplicationsOWASP SF - Reviewing Modern JavaScript Applications
OWASP SF - Reviewing Modern JavaScript ApplicationsLewis Ardern
 
General Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptGeneral Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptSpike Brehm
 

Ähnlich wie Kickstarter Your Node.JS Application (20)

Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.js
 
Node azure
Node azureNode azure
Node azure
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
 
Introduction to node.js by jiban
Introduction to node.js by jibanIntroduction to node.js by jiban
Introduction to node.js by jiban
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Building a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntBuilding a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger Hunt
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
 
Meanstack overview
Meanstack overviewMeanstack overview
Meanstack overview
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 
BackEnd-Roadmap.pdf
BackEnd-Roadmap.pdfBackEnd-Roadmap.pdf
BackEnd-Roadmap.pdf
 
Develop & Deploy Node.js app on Windows Azure
Develop & Deploy Node.js app on Windows AzureDevelop & Deploy Node.js app on Windows Azure
Develop & Deploy Node.js app on Windows Azure
 
Nodejs web,db,hosting
Nodejs web,db,hostingNodejs web,db,hosting
Nodejs web,db,hosting
 
OWASP SF - Reviewing Modern JavaScript Applications
OWASP SF - Reviewing Modern JavaScript ApplicationsOWASP SF - Reviewing Modern JavaScript Applications
OWASP SF - Reviewing Modern JavaScript Applications
 
Ember
EmberEmber
Ember
 
General Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptGeneral Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScript
 
WebAssemlby vs JavaScript
WebAssemlby vs JavaScriptWebAssemlby vs JavaScript
WebAssemlby vs JavaScript
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Kickstarter Your Node.JS Application

  • 1. Node Meetup Tuesday, December 2, 2014
  • 3. { name : “Hengki Sihombing” email : “hengki.sihombing@gmail.com”, twitter : “hengkiardo”, github : “aredo” } module.export =
  • 4. Kickstarter Your Node.JS Application http://blog.efvincent.com/wp-content/uploads/2011/06/Capture.png
  • 5. require(‘express’) require(‘mongoose’) require(‘passport’) require(‘async’) require(‘grunt’) require(‘demo’) require(‘QA’)
  • 7. Answer by your self Why you come to this meetup :)
  • 8. Express.JS Fast, unopinionated, minimalist web framework for Node.js expressjs.com $ npm install express
  • 9. MVC Framework base on Express.JS • KrakenJs http://locomotivejs.org/ • Locomotive.JS http://locomotivejs.org/ • Sails http://locomotivejs.org/ • Sleek.JS http://sleekjs.com/ • …… http://www.quora.com/Why-should-I-use-Express-when-developing-a-web-app-with-Node-js http://evanhahn.com/understanding-express/
  • 10. Why Express.JS ??? • Express is a lightweight framework, meaning it does not make too many assumptions but gives you enough to avoid re-inventing the wheel. • Express is preferred because it adds dead simple routing and support for Connect middleware, allowing many extensions and useful features • Like any abstraction, Express hides difficult bits and says "don't worry, you don't need to understand this part". It does things for you so that you don't have to bother. In other words, it's magic • https://www.google.com/#q=why+express.js http://www.quora.com/Why-should-I-use-Express-when-developing-a-web-app-with-Node-js http://evanhahn.com/understanding-express/
  • 12. Why Mongoose ? • Because it provides easy-to-use methods for interacting with MongoDB. It is ORM, actually. It helps you forget about driver's query documentation, and focus on your models. • Mongoose provides a straight-forward, schema-based solution to modeling your application data and includes built-in type casting, validation, query building, business logic hooks and more, out of the box. • Mongoose provides various functionalities which makes your life easy such as
  • 14. https://github.com/jaredhanson/passport • 140+ authentication strategies • Easily handle success and failure • Supports persistent sessions • Dynamic scope and permissions • Pick and choose required strategies • Implement custom strategies • Lightweight code base •Easy To Use!!
  • 15. Sample Twitter Auth with Passport
  • 16. Sample FB Auth with Passport
  • 17. Sample Linkedin Auth with Passport
  • 19. Promises Promises… Promises… Never break your promises. Personally, never make promises. https://blog.domenic.me/youre-missing-the-point-of-promises
  • 20.
  • 21. Not part of the Node “until latest stable version” Makes integration more difficult. Makes swapping code in / out more painful. Callbacks So good it’s got it’s own website callbackhell.com
  • 22. async https://github.com/caolan/async Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js, it can also be used directly in the browser. $ npm install async — save
  • 23.
  • 24.
  • 25.
  • 26. another build tools: Gulp, Make, NPM, Ant, Maven Why use a task runner or build system?
  • 28. Automation isn’t about being lazy. It’s about being efficient
  • 29.
  • 30.
  • 31.
  • 32. Before you get started $ npm install -g grunt-cli $ npm install —save-dev grunt
  • 33. package.json to manage dependencies
  • 36. QA! { name : “Hengki Sihombing” email : “hengki.sihombing@gmail.com”, twitter : “hengkiardo”, github : “aredo” } module.export =