building a web app in 100% javascript with carl bergenhem

87
BUILDING A WEB APP IN 100% JAVASCRIPT USING NODE.JS, EXPRESS.JS, AND KENDO UI - Carl Bergenhem @carlbergenhem

Upload: fitc

Post on 05-Dec-2014

1.047 views

Category:

Technology


0 download

DESCRIPTION

We all love and adore JavaScript when we use it on the front-end of our web apps – why not use it in the back-end as well? That’s like having your cake and eating it too! Prepare to have your mind blown, because in this presentation we will create an entire web application using just (or well, mostly) JavaScript. Learn how to create a fast and flexible back-end utilizing the popular Node.js library and see how it ties in with your UI. From accessing the database to handling interactions with the front-end – we’ll do it all!

TRANSCRIPT

Page 1: Building A Web App In 100% JavaScript with Carl Bergenhem

BUILDING AWEB APP IN

100%JAVASCRIPT

USING NODE.JS, EXPRESS.JS, ANDKENDO UI

- Carl Bergenhem @carlbergenhem

Page 2: Building A Web App In 100% JavaScript with Carl Bergenhem

WHO AM I?

Page 3: Building A Web App In 100% JavaScript with Carl Bergenhem

CARL BERGENHEM

Page 4: Building A Web App In 100% JavaScript with Carl Bergenhem

MANAGER OF SOLUTIONSCONSULTANT TEAM @TELERIK

Page 5: Building A Web App In 100% JavaScript with Carl Bergenhem

ASPINSIDER

Page 6: Building A Web App In 100% JavaScript with Carl Bergenhem

WEB DEVELOPER

Page 7: Building A Web App In 100% JavaScript with Carl Bergenhem

GAMING AFFICIONADO

Page 8: Building A Web App In 100% JavaScript with Carl Bergenhem

LOVER OF JS

Page 9: Building A Web App In 100% JavaScript with Carl Bergenhem

I HAVE A SECRET...

Page 10: Building A Web App In 100% JavaScript with Carl Bergenhem

WE CAN NOW BUILD OURENTIRE APP

INJAVASCRIPT

Page 11: Building A Web App In 100% JavaScript with Carl Bergenhem

HOW IS THIS EVENPOSSIBLE!?

JAVASCRIPT IS JUST CLIENT-SIDERIGHT?

Page 12: Building A Web App In 100% JavaScript with Carl Bergenhem

WRONG

Page 13: Building A Web App In 100% JavaScript with Carl Bergenhem

NODE.JS CHANGED THEGAME

ALLOWS JAVASCRIPT ON THE SERVER

Page 14: Building A Web App In 100% JavaScript with Carl Bergenhem

BEFORE WE START

Page 15: Building A Web App In 100% JavaScript with Carl Bergenhem

LET'S TAKE A LOOK AT THETECHNOLOGIES WE'RE

COVERING(THERE'S A LOT OF THEM)

Page 16: Building A Web App In 100% JavaScript with Carl Bergenhem

SERVER:NODE.JS

Page 17: Building A Web App In 100% JavaScript with Carl Bergenhem

WEB FRAMEWORK:EXPRESS.JS

Page 18: Building A Web App In 100% JavaScript with Carl Bergenhem

DATABASE:MONGODB AND MONGOOSE.JS

Page 19: Building A Web App In 100% JavaScript with Carl Bergenhem

UI FRAMEWORK:KENDO UI

Page 20: Building A Web App In 100% JavaScript with Carl Bergenhem

NODE.JS

Page 21: Building A Web App In 100% JavaScript with Carl Bergenhem

CREATED BY RYAN DAHL

Page 22: Building A Web App In 100% JavaScript with Carl Bergenhem

RUNS ON GOOGLE'S V8 JAVASCRIPTENGINE

Page 23: Building A Web App In 100% JavaScript with Carl Bergenhem

EVENT DRIVEN

Page 24: Building A Web App In 100% JavaScript with Carl Bergenhem

ASYNCHRONOUS

Page 25: Building A Web App In 100% JavaScript with Carl Bergenhem

PERFECT FOR WEB SERVERS

Page 26: Building A Web App In 100% JavaScript with Carl Bergenhem

WHY IS IT PERFECT FORWEB SERVERS?

Page 27: Building A Web App In 100% JavaScript with Carl Bergenhem

ASYNCHRONOUSAND

EVENT DRIVEN

Page 28: Building A Web App In 100% JavaScript with Carl Bergenhem

NON-BLOCKING I/O

Page 29: Building A Web App In 100% JavaScript with Carl Bergenhem

SUPER LIGHT-WEIGHT

Page 30: Building A Web App In 100% JavaScript with Carl Bergenhem

INSTALL PROCESS

Page 31: Building A Web App In 100% JavaScript with Carl Bergenhem

NODE.JS.ORG

Page 32: Building A Web App In 100% JavaScript with Carl Bergenhem

INSTALLERS FOR OS X, WINDOWS,LINUX AND SUNOS

Page 33: Building A Web App In 100% JavaScript with Carl Bergenhem

AUTOMATICALLY INSTALLS NODEJSAND NPM

Page 34: Building A Web App In 100% JavaScript with Carl Bergenhem

NPM

Page 35: Building A Web App In 100% JavaScript with Carl Bergenhem

PACKAGE MANAGER FOR NODE.JS

Page 36: Building A Web App In 100% JavaScript with Carl Bergenhem

SUPER EASY TO USEnpm install [package name]

Page 37: Building A Web App In 100% JavaScript with Carl Bergenhem

QUICK NODE.JS SERVERvar http = require('http');http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n');}).listen(1337, '127.0.0.1');

Page 38: Building A Web App In 100% JavaScript with Carl Bergenhem

LET'S SET UP OUR SERVER

Page 39: Building A Web App In 100% JavaScript with Carl Bergenhem

WELL THAT WAS FUNWHAT'S NEXT?

Page 40: Building A Web App In 100% JavaScript with Carl Bergenhem

EXPRESSJS

Page 41: Building A Web App In 100% JavaScript with Carl Bergenhem

WEB APP FRAMEWORK FOR NODE.JS

Page 42: Building A Web App In 100% JavaScript with Carl Bergenhem

EXTENDS THE NODE.JS FRAMEWORK

Page 43: Building A Web App In 100% JavaScript with Carl Bergenhem

SIMPLE WAY OF HANDLING ROUTES

Page 44: Building A Web App In 100% JavaScript with Carl Bergenhem

QUICK AND EASY SETUP &CONFIGURATION

Page 45: Building A Web App In 100% JavaScript with Carl Bergenhem

BUILT-IN VIEW TEMPLATES (JADE)

Page 46: Building A Web App In 100% JavaScript with Carl Bergenhem

YOU DECIDE THE STRUCTURE

Page 47: Building A Web App In 100% JavaScript with Carl Bergenhem

INSTALL PROCESS

Page 48: Building A Web App In 100% JavaScript with Carl Bergenhem

NAVIGATE TO YOUR APP FOLDER

Page 49: Building A Web App In 100% JavaScript with Carl Bergenhem

CREATE A PACKAGE.JSON FILE

Page 50: Building A Web App In 100% JavaScript with Carl Bergenhem

PASTE THE FOLLOWING{ "name": "SampleApp", "description": "Sample App Description", "version": "0.0.1", "private": true, "dependencies": { "express": "3.x" }}

Page 51: Building A Web App In 100% JavaScript with Carl Bergenhem

RUN THE FOLLOWING:npm install

Page 52: Building A Web App In 100% JavaScript with Carl Bergenhem

QUICK EXPRESS.JS SETUPvar express = require('express');

var app = express();

app.get('/request', function(req, res) { console.log('We got a request!');});

app.listen(3000);console.log('Listening on port 3000...');

Page 53: Building A Web App In 100% JavaScript with Carl Bergenhem

LET'S EXPRESS-IFY OUR APP!

Page 54: Building A Web App In 100% JavaScript with Carl Bergenhem

THAT WAS QUICK!

Page 55: Building A Web App In 100% JavaScript with Carl Bergenhem

MONGOOSE.JS

Page 56: Building A Web App In 100% JavaScript with Carl Bergenhem

SIMPLE OBJECT MODELING

Page 57: Building A Web App In 100% JavaScript with Carl Bergenhem

WORK WITH BSON

Page 58: Building A Web App In 100% JavaScript with Carl Bergenhem

CREATE STRICT MODELS

Page 59: Building A Web App In 100% JavaScript with Carl Bergenhem

EASILY HOOK IN TO MONGODB

Page 60: Building A Web App In 100% JavaScript with Carl Bergenhem

HIGHER LEVEL THAN 'RAW' DRIVERS

Page 61: Building A Web App In 100% JavaScript with Carl Bergenhem

INSTALL PROCESS

Page 62: Building A Web App In 100% JavaScript with Carl Bergenhem

VERY EASY INSTALL!npm install mongoose

Page 63: Building A Web App In 100% JavaScript with Carl Bergenhem

ADDING OUR DATABASE!

Page 64: Building A Web App In 100% JavaScript with Carl Bergenhem

KENDO UI

Page 65: Building A Web App In 100% JavaScript with Carl Bergenhem

CREATED BY @TELERIK

Page 66: Building A Web App In 100% JavaScript with Carl Bergenhem

JAVASCRIPT FRAMEWORK

Page 67: Building A Web App In 100% JavaScript with Carl Bergenhem

BASED ON JQUERY

Page 68: Building A Web App In 100% JavaScript with Carl Bergenhem

WEB APP UI FRAMEWORK

Page 69: Building A Web App In 100% JavaScript with Carl Bergenhem

MOBILE HYBRID APP UI FRAMEWORK

Page 70: Building A Web App In 100% JavaScript with Carl Bergenhem

HTML5 AND CSS3

Page 71: Building A Web App In 100% JavaScript with Carl Bergenhem

WIDE CROSS-BROWSER SUPPORT

Page 72: Building A Web App In 100% JavaScript with Carl Bergenhem

IE7+, FF, CHROME, SAFARI, OPERA

Page 73: Building A Web App In 100% JavaScript with Carl Bergenhem

QUICK KENDO SAMPLE<ul id='myMenu' > <li>Books</li> <li>Video Games</li> <li>Movies</li> <ul> <li>The Big Lebowski</li> <li>The Matrix</li> </ul> </li></ul>

<script>

</script>

$(function () { $('#myMenu').kendoMenu(); });

Page 74: Building A Web App In 100% JavaScript with Carl Bergenhem

TIME TO SLAP SOME UI ONTHIS THING

Page 75: Building A Web App In 100% JavaScript with Carl Bergenhem

UI LEVEL: KENDO UI

Page 76: Building A Web App In 100% JavaScript with Carl Bergenhem

WOAH THERE, HOLD YOURHORSES

Page 77: Building A Web App In 100% JavaScript with Carl Bergenhem

DEBUGGING!?

Page 79: Building A Web App In 100% JavaScript with Carl Bergenhem

DEBUG ANY NODE.JS APP

Page 80: Building A Web App In 100% JavaScript with Carl Bergenhem

WEBKIT DEVTOOLS

Page 81: Building A Web App In 100% JavaScript with Carl Bergenhem

EASY TO INSTALLnpm install -g node-inspector

Page 82: Building A Web App In 100% JavaScript with Carl Bergenhem

EASY TO USEnode-inspector &

Page 83: Building A Web App In 100% JavaScript with Carl Bergenhem

DEBUGGING TIME!

Page 84: Building A Web App In 100% JavaScript with Carl Bergenhem

THAT'S IT!

Page 85: Building A Web App In 100% JavaScript with Carl Bergenhem

WE NOW HAVE AN APP

Page 86: Building A Web App In 100% JavaScript with Carl Bergenhem

WRITTEN IN 100%JAVASCRIPT

Page 87: Building A Web App In 100% JavaScript with Carl Bergenhem

THANKS!Q&A

- Carl Bergenhem @carlbergenhem