node-express
阿新 • • 發佈:2017-09-06
all Coding option 靜態 append play port path 編碼
安裝
$ npm install express --save $ npm install body-parser --save //node.js 中間件,用於處理 JSON, Raw, Text 和 URL 編碼的數據 $ npm install cookie-parser --save //通過req.cookies可以取到傳過來的cookie,並把它們轉成對象。 $ npm install multer --save //node.js 中間件,用於處理 enctype="multipart/form-data"(設置表單的MIME編碼)的表單數據。
//express_demo.js 文件 varexpress = require(‘express‘); var app = express(); app.get(‘/‘, function (req, res) {
//Request 對象 - 對象表示 HTTP 請求,Response 對象 - 表示 HTTP 響應 res.send(‘Hello World‘); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("應用實例,訪問地址為 http://%s:%s", host, port) }) $ node express_demo.js
req.app:當callback為外部文件時,用req.app訪問express的實例 req.baseUrl:獲取路由當前安裝的URL路徑 req.body / req.cookies:獲得「請求主體」/ Cookies req.fresh / req.stale:判斷請求是否還「新鮮」 req.hostname / req.ip:獲取主機名和IP地址 req.originalUrl:獲取原始請求URL req.params:獲取路由的parameters req.path:獲取請求路徑 req.protocol:獲取協議類型 req.query:獲取URL的查詢參數串 req.route:獲取當前匹配的路由 req.subdomains:獲取子域名 req.accepts():檢查可接受的請求的文檔類型 req.acceptsCharsetsreq的常見屬性/ req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一個可接受字符編碼 req.get():獲取指定的HTTP請求頭 req.is():判斷請求頭Content-Type的MIME類型
res.app:同req.app一樣 res.append():追加指定HTTP頭 res.set()在res.append()後將重置之前設置的頭 res.cookie(name,value [,option]):設置Cookie opition: domain / expires / httpOnly / maxAge / path / secure / signed res.clearCookie():清除Cookie res.download():傳送指定路徑的文件 res.get():返回指定的HTTP頭 res.json():傳送JSON響應 res.jsonp():傳送JSONP響應 res.location():只設置響應的Location HTTP頭,不設置狀態碼或者close response res.redirect():設置響應的Location HTTP頭,並且設置狀態碼302 res.send():傳送HTTP響應 res.sendFile(path [,options] [,fn]):傳送指定路徑的文件 -會自動根據文件extension設定Content-Type res.set():設置HTTP頭,傳入object可以一次設置多個頭 res.status():設置HTTP狀態碼 res.type():設置Content-Type的MIME類型res的常見屬性
路由
var express = require(‘express‘); var app = express(); // 主頁輸出 "Hello World" app.get(‘/‘, function (req, res) { console.log("主頁 GET 請求"); res.send(‘Hello GET‘); }) // POST 請求 app.post(‘/‘, function (req, res) { console.log("主頁 POST 請求"); res.send(‘Hello POST‘); }) // /del_user 頁面響應 app.get(‘/del_user‘, function (req, res) { console.log("/del_user 響應 DELETE 請求"); res.send(‘刪除頁面‘); }) // /list_user 頁面 GET 請求 app.get(‘/list_user‘, function (req, res) { console.log("/list_user GET 請求"); res.send(‘用戶列表頁面‘); }) // 對頁面 abcd, abxcd, ab123cd, 等響應 GET 請求 app.get(‘/ab*cd‘, function(req, res) { console.log("/ab*cd GET 請求"); res.send(‘正則匹配‘); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("應用實例,訪問地址為 http://%s:%s", host, port) }) $ node express_demo2.js
http://127.0.0.1:8081/list_user
靜態文件
Express 提供了內置的中間件 express.static 來設置靜態文件如:圖片, CSS, JavaScript 等。
app.use(express.static(‘文件目錄‘));
var express = require(‘express‘); var app = express(); app.use(express.static(‘public‘)); app.get(‘/‘, function (req, res) { res.send(‘Hello World‘); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("應用實例,訪問地址為 http://%s:%s", host, port) }) $ node express_demo3.js 在瀏覽器中訪問 http://127.0.0.1:8081/images/logo.png
node-express