73
from basic to middle clonn http://about.me/clonn Expressjs Thursday, September 5, 13

Expressjs basic to advance, power by Node.js

Embed Size (px)

Citation preview

from  basic  to  middle

clonnhttp://about.me/clonn

Expressjs

Thursday, September 5, 13

Caesar Chi

clonncdThursday, September 5, 13

• node

• npm

• git

• grunt.js (optional)

Material

Thursday, September 5, 13

• http://expressjs.com

• https://github.com/visionmedia/express/wiki

Thursday, September 5, 13

• npm install -g express

• maybe you will use “sudo”

• make express work well

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• -c (css)

• -h (call help)

• -v (version)

• -s (session)

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• -c (css)

• -h (call help)

• -v (version)

• -s (session)

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• -c (css)

• -h (call help)

• -v (version)

• -s (session)

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• -c (css)

• -h (call help)

• -v (version)

• -s (session)

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• jade (as default)

Basic

Thursday, September 5, 13

• express as cli

• -e (ejs), -j (jshtml), -H (hogan)

• jade (as default)

Basic

They are Template engine

Thursday, September 5, 13

• Why need template engine?

Basic

Thursday, September 5, 13

• Why need template engine?

Basic

•user-data•cargo-list•cache-store

Thursday, September 5, 13

• Why need template engine?

Basic

•user-data•cargo-list•cache-store

Thursday, September 5, 13

• Why need template engine?

Basic

•user-data•cargo-list•cache-store We need Template engine

Thursday, September 5, 13

We need Template engine

MVC (i hate u)

Because

Thursday, September 5, 13

• express as cli

• -css (default css)

• stylus (as default)

Basic

Thursday, September 5, 13

• express as cli

• -css (default css)

• stylus will compile to pure CSS in static folder

Basic

Thursday, September 5, 13

• run express cli

• express [-option] [application_name]

Basic

Thursday, September 5, 13

• run express cli

• express [-option] [application_name]

Basic

Thursday, September 5, 13

• run express cli

• express [-option] [application_name]

Basic

Thursday, September 5, 13

• run express cli

Basic

Thursday, September 5, 13

• run express cli

Basic

Thursday, September 5, 13

• run express cli

Basic

Thursday, September 5, 13

• run express cli

Basic

Thursday, September 5, 13

Now you know Express-cli

as well

Thursday, September 5, 13

• folder structure

Content

Thursday, September 5, 13

• folder structure

Content

npm package config

Thursday, September 5, 13

• folder structure

Content

init file (app.js)

Thursday, September 5, 13

• folder structure

Content

static folder

Thursday, September 5, 13

• folder structure

Content

route setting

Thursday, September 5, 13

• folder structure

Content

view folder

Thursday, September 5, 13

it is basic Express

folder structure

Thursday, September 5, 13

• Setting in Express

• app.listen

Middle

Thursday, September 5, 13

• Setting in Express

• app.configure

Middle

read environment variable

Thursday, September 5, 13

• Setting in Express

• app.set, app.get

• app.enable, app.disable

Middle

http://expressjs.com/api.html#app-settings

Thursday, September 5, 13

• Setting in Express

• app.use

Middle

middleware

route

viewThursday, September 5, 13

• Setting in Express

• app.use

Middle

middleware

route

view

app.use, will execute every route

Thursday, September 5, 13

• Setting in Express

• app.get,

• app.post,

• app.delete,

• app.update

Middle

middleware

route

viewThursday, September 5, 13

• Setting in Express

• app.all

• app.get,

• app.post,

• app.delete,

• app.update

Middle

middleware

route

viewThursday, September 5, 13

• Setting in Express

• app.locals

Middle

•user-data•cargo-list•cache-store

if those parameters are default

Thursday, September 5, 13

it is middleware Express

app original method

Thursday, September 5, 13

• req get parameter

• req.params

Request

id = 3

Thursday, September 5, 13

• req get parameter

• req.query

Request

getId = 30

Thursday, September 5, 13

• req get parameter

• req.body

Request

Thursday, September 5, 13

• req get parameter

• req.body

Request

Thursday, September 5, 13

• req get parameter

• req.files

Request

Thursday, September 5, 13

• req get cookie

• req.cookies (read cookie)

Request

Thursday, September 5, 13

• req about HEADER (read only)

• req.get, req.header

• req.is

• req.ip, req.ips

• req.host (req.subdomains)

• req.protocol, (req.secure -> 'https' == req.protocol;)

Request

Thursday, September 5, 13

• req about HEADER (read only)

• req.xhr

Request

Thursday, September 5, 13

• req about HEADER (read only)

• req.xhr

Request

Thursday, September 5, 13

• req about HEADER (read only)

• req.xhr

Request

Thursday, September 5, 13

Request is READ only

in ExpressJS

Thursday, September 5, 13

• res about HEADER

• res.status (res.statusCode)

Response

(code only)

Thursday, September 5, 13

• res about HEADER

• res.clearCookie

Response

Thursday, September 5, 13

• res about HEADER

• res.set, res.header

Response

Thursday, September 5, 13

• res about parameters

• res.locals (app.locals is different)

Response

life cycle is only in url period.

Thursday, September 5, 13

• res client render

• res.redirect

Response

Thursday, September 5, 13

• res client render

• res.json, res.send

Response

HEADER: application/json

Thursday, September 5, 13

• res client render

• res.download

Response

Thursday, September 5, 13

• res client render

• res.render

Response

Thursday, September 5, 13

Response write datain Express

Thursday, September 5, 13

more?

Thursday, September 5, 13

change middlewarehttps://github.com/visionmedia/express/wiki

Thursday, September 5, 13

cross domain accesshttp://stackoverflow.com/questions/11181546/node-js-express-cross-domain-scripting

Thursday, September 5, 13

co-work with angularjshttps://github.com/btford/angular-socket-io-im

Thursday, September 5, 13

future!!!

Thursday, September 5, 13

express 4.x roadmap.https://github.com/visionmedia/express/wiki/4.x-roadmap

Thursday, September 5, 13

Q & A?

Thursday, September 5, 13

Advertising

Thursday, September 5, 13

http://nodejs.tw/Thursday, September 5, 13

http://book.nodejs.tw/Thursday, September 5, 13

http://nodeknockout.nodejs.tw/

2013/Nov/8 - 10

Thursday, September 5, 13