Express
hello world
1 | var express = require("express"); |
2 | var http = require("http"); |
3 | |
4 | var app = express(); |
5 | |
6 | //middle ware 1 |
7 | app.use(function (request, response) { |
8 | console.log("In comes a request to: " + request.url); |
9 | response.end("Hello World!"); |
10 | }); |
11 | //middle ware 2 |
12 | ... |
13 | //middle ware 3 |
14 | ... |
15 | |
16 | http.createServer(app).listen(3000); |
17 | //same as app.listen(3000); |
middleware
basic
1 | app.use(function (req, res, next) { |
2 | ... |
3 | next(); |
4 | }); |
error
1 | app.use(function (err, req, res, next) { |
2 | ... |
3 | next(); |
4 | }); |
third party middleware
logger
1 | ... |
2 | var logger = require("morgan"); |
3 | app.use(logger("short"); |
4 | ... |
express.static
1 | ... |
2 | var path = require("path"); |
3 | var publicPath = path.resolve(__dirname, "public"); |
4 | app.use(express.static(publicPath)); |
5 | ... |
etc
- connect-ratelimit
- 시간당 특정 요청수 연결 조절
- Helmet
- http 헤더를 추가해 앱을 특정 종류의 공격으로부터 더 안전하게
- cookie-parser
- 브라우저 쿠키 분석
- response-time
- X-Response-Time 헤더를 전송, 애플리케이션의 성능 디버깅 가능
- body-parser
- 양식 제출할때 사용 등
- compression
- 바이트를 줄이기위해 응답 압축
- connect-assets
- CSS와 자바스크립트 자산을 컴파일하고 줄임
- SASS, LESS, Stylus 등의 CSS 전처리기와 동작
router
basic
1...2//basic3app.get("/about", function (request, response) {4response.end("about");5});6//get variable, but not good7app.get("/hello/:who", function (request, response) {8response.end("Hello, " + request.params.who + "!");9});10//regex pattern and get variable11app.get(/^\/users\/(\d+)$/, function (req, res) {12var userId = parseInt(req.params[0], 10);13...14});15//get query16app.get("/search", function (req, res) {17var b = req.query.q == "something like that";18});19...routes
app.js./routes/api_router.js1var express = require("express");2var apiRouter = require("./routes/api_router");34var app = express();56app.use("/api", apiRouter);78app.listen(3000);1var express = require("express");23var api = express.Router();4api.use(function (req, res, next) {5...6next();7});8api.get("/users", function (req, res) { ... });9api.post("/users", function (req, res) { ... });10api.get("/messages", function (req, res) { ... });11api.post("/messages", function (req, res) { ... });1213module.exports = api;response extend
redirectsendFile1response.redirect("/some/path");2response.redirect("http://www.google.com/");json1response.sendFile("/path/to/some_file.txt");crud1response.json({ result: "blabla" });send1app.get("/", function (req, res) { ... });2app.post("/", function (req, res) { ... });3app.put("/", function (req, res) { ... });4app.delete("/", function (req, res) { ... });1app.send("message");ejs view
Ejs view setup./views/footer.ejs1var express = require("express");2var path = require("path");34var app = express();56//view files in ./views7app.set("views", path.resolve(__dirname, "views));8//set use ejs9app.set("view engine", "ejs");./views/index.ejs1</body>2</html>View render1<!DOCUMENT html>2<html>3<head>4<meta charset="utf-8">5<title>Hello, world!</title>6</head>7<body>8<%= message =%>9<% include footer %>1app.get("/", function (req, res) {2response.render("index", {3message: "Hello World!"4});5});