1. 程式人生 > >node-express

node-express

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 文件
var
express = 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.acceptsCharsets 
/ req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一個可接受字符編碼 req.get():獲取指定的HTTP請求頭 req.is():判斷請求頭Content-Type的MIME類型
req的常見屬性 技術分享
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