国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Node.js學習之路26——Express的response對象

davidac / 527人閱讀

摘要:如果包含字符則將設置為。添加字段到不同的響應頭將該字段添加到不同的響應標頭如果它尚未存在。

3. response對象 3.1 是否發送了響應頭

res.headersSent布爾屬性,app是否發送了httpheaders

const express = require("express");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser")
const app = express();

app.use(bodyParser.json());// parsing application/json
app.use(bodyParser.urlencoded({ extended: true }));// parsing application/x-www-form-urlencoded
app.use(cookieParser())

app.get("/", (req, res) => {
    console.log(res.headersSent); // false
    res.send("OK");
    console.log(res.headersSent); // true
})
app.listen(3000);
3.2 添加響應頭信息

res.append(filed,[value])添加響應頭信息

使用res.append()之后調用res.set()將會重置先前設置的頭信息

const express = require("express");
const app = express();
app.get("/", (req, res) => {
    console.log(res.headersSent); // false
    res.append("Link", ["", ""]);
    res.append("Set-Cookie", "foo=bar; Path=/; HttpOnly");
    res.append("Warning", "199 Miscellaneous warning");
    res.attachment("path/to/logo.png");
    res.cookie("user", { name: "Jack", age: 18 });
    res.cookie("maxAge", 1000 * 60 * 60 * 24 * 30);
    res.send("OK");
    console.log(res.headersSent); // true
})
app.listen(3000);
3.3 設置HTTP響應Content-Disposition字段attachment

res.attachment([filename])

設置HTTP響應Content-Disposition字段attachment

如果參數為空,那么設置Content-Disposition:attachment

如果參數有值,那么將基于res.type()擴展名設置Content-Type的值,并且設置Content-Disposition的值為參數值

res.attachment();
// Content-Disposition: attachment

res.attachment("path/to/logo.png");
// Content-Disposition: attachment; filename="logo.png"
// Content-Type: image/png

3.4 設置cookie信息

res.cookie(name, value, [options])

清除cookie信息res.clearCookie(name, [options])

設置cookienamevalue,value值可以是stringobject,options是一個對象

domain,string,cookie的域名,默認為該app的域名

expires,date,過期時間

httpOnly,boolean,cookie的標志位,只能允許http web server

maxAge,string,用于設置過期時間相對于當前時間 (以毫秒為單位) 的選項.

path,string,cookie的路徑,默認為/

secure,boolean,標記只用于HTTPScookie.

signed,boolean,指示是否應對cookie進行簽名.(有問題,需要cookie-parser)

所有的res.cookie ()都是用所提供的選項設置HTTP設置cookie頭.任何未指定的選項都默認為RFC 6265中所述的值.
使用cookie-parser中間件時, 此方法還支持簽名的cookie.只需將簽名的選項設置為 true.然后,res cookie ()將使用傳遞給cookieParser(秘密) 的秘密來簽署該值.
3.5 響應下載信息

res.download(path, [filename], [callback(err){...}])

const express = require("express");
const app = express();
app.get("/", (req, res) => {
    res.download("static/download/file.pdf", "file.pdf", (err) => {
        if (err) {
            res.send(err);
        }
    });
})
app.listen(3000);
3.6 結束響應進程

res.end([data], [encoding])

不需要返回任何數據,如果需要返回數據,可以使用res.send()或者res.json()

3.7 獲取請求頭信息

res.get(field)

通過字段返回HTTP請求頭信息,大小寫敏感

res.get("Content-Type");
// => "image/png"
3.8 發送一個JSON響應

res.json([body])

方法類似于帶有一個對象參數或數組參數的res.send()

參數也可以為null或者undefined

res.json(null)
res.json({ user: "tobi" })
res.status(500).json({ error: "message" })
3.9 填充響應的鏈接HTTP標題頭字段

res.links(links)

res.links({
    next: "http://localhost:3000/users?page=2",
    next: "http://localhost: /users?page=5"
})
3.10 響應重定向

res.redirect([status], path)

如果不指定status狀態,默認狀態碼status code302 Found

如果要跳轉到外部的鏈接,需要加上http://

返回上一步的頁面res.redirect("back");

返回上一級的頁面,如果現在是在http://example.com/admin/post/new頁面,想要跳轉到上一級頁面http//example.com/admin/post,使用res.redirect("..");

res.redirect("/users");
res.redirect(301, "http://localhost:3000/login")
3.11 渲染模板引擎

res.render(view, [locals], [callback(err,html){...}])

模板引擎一般有ejs,jade,html

3.12 發送HTTP響應信息

res.send([body])

參數可以是String,Buffer,Array

res.send(new Buffer("whoop"));
res.send({ some: "json" });
res.send("

some html

"); res.status(404).send("Sorry, we cannot find that!"); res.status(500).send({ error: "something blew up" });
3.13 給定路徑上傳輸文件

res.sendFile(path, [options], [callback(err){...}])

根據文件名的擴展名設置內容類型響應HTTP標頭字段.除非在選項對象中設置了根選項, 否則路徑必須是文件的絕對路徑.

options是一個對象選項

maxAge,以毫秒為單位設置Cache-Control標題頭的最大屬性或ms格式的字符串,默認為0

root,相對文件名的根目錄

lastModified,將Last-Modified的標題頭設置為操作系統上文件的最后修改日期.設置為false以禁用它.

headers,包含要與文件一起服務的HTTP標頭的對象.

dotfiles,服務dotfiles的選項.可能的值是allow,deny,ignore,默認值為ignore

router.get("/file/:name", (req, res, next) => {
    let options ={
        root: "./public/static/download/",
        dotfiles: "deny",
        headers: {
            "x-timestamp": Date.now(),
            "x-sent": true
        }
    };
    
    let fileName = req.params.name;
    res.sendFile(fileName, options, (err) => {
        if(err){
            console.log(err);
            res.status(err.status).end();
        }else{
            console.log("Sent: ",fileName)
        }
    })
});
3.14 設置狀態代碼

res.sendStatus(statusCode)

將響應HTTP狀態代碼設置為statusCode, 并將其字符串表示形式作為響應正文發送.

res.sendStatus(200); // equivalent to res.status(200).send("OK")
res.sendStatus(403); // equivalent to res.status(403).send("Forbidden")
res.sendStatus(404); // equivalent to res.status(404).send("Not Found")
res.sendStatus(500); // equivalent to res.status(500).send("Internal Server Error")
3.15 設置響應頭信息

res.set(field, [value])

可以單個設置,也可以用一個對象設置

res.set("Content-Type", "text/plain");

res.set({
  "Content-Type": "text/plain",
  "Content-Length": "123",
  "ETag": "12345"
})
3.16 設置響應狀態

res.status(code)

使用此方法可設置響應的HTTP狀態.它是節點響應的式別名statusCode

res.status(403).end();
res.status(400).send("Bad Request");
res.status(404).sendFile("/absolute/path/to/404.png");
3.17 設置響應類型

res.type(type)

將內容類型HTTP標頭設置為指定類型的mime.lookup()所確定的mime類型。如果type包含/字符, 則將Content-Type設置為type

res.type(".html");              // => "text/html"
res.type("html");               // => "text/html"
res.type("json");               // => "application/json"
res.type("application/json");   // => "application/json"
res.type("png");                // => "image/png:"
3.18 添加字段到不同的響應頭

res.vary(filed)

將該字段添加到不同的響應標頭 (如果它尚未存在)。

res.vary("User-Agent").render("docs");

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93057.html

相關文章

  • Node.js學習之路27——Expressrouter對象

    摘要:對象大小寫敏感默認不敏感保留父路由器的必需參數值如果父項和子項具有沖突的參數名稱則該子項的值將優先激活嚴格路由默認禁用禁用之后正常訪問但是不可以訪問全部調用或者或者實際上就是的各種請求方法使用路由使用模塊方法 Router([options]) let router = express.Router([options]); options對象 caseSensitive,大小寫敏...

    NicolasHe 評論0 收藏0
  • Node.js學習之路25——Expressrequest對象

    摘要:對象表示請求并且具有請求查詢字符串參數正文標題頭等屬性對應用程序實例的引用保存了很多對使用中間件的應用程序實例的引用掛載在路由實例上的路徑請求主體和和包含在請求正文中提交的數據的鍵值對默認情況下它是未定義的當您使用體解析中間件如和時將被填 2. request req對象表示http請求,并且具有請求查詢字符串,參數,正文,http標題頭等屬性 app.get(/user/:id, ...

    cocopeak 評論0 收藏0
  • Node.js學習之路24——Express框架app對象

    1.express() 基于Node.js平臺,快速、開放、極簡的web開發框架。 創建一個Express應用.express()是一個由express模塊導出的入口top-level函數. const express = require(express); let app = express(); 1.1 靜態資源管理 express.static(root, [options]) expr...

    smallStone 評論0 收藏0
  • Node.js 中度體驗

    摘要:創建簡單應用使用指令來載入模塊創建服務器使用方法創建服務器,并使用方法綁定端口。全局安裝將安裝包放在下。的核心就是事件觸發與事件監聽器功能的封裝。通常我們用于從一個流中獲取數據并將數據傳遞到另外一個流中。壓縮文件為文件壓縮完成。 創建簡單應用 使用 require 指令來載入 http 模塊 var http = require(http); 創建服務器 使用 http.create...

    CastlePeaK 評論0 收藏0
  • Node.js學習之路23——Node.js利用mongoose連接mongodb數據庫

    摘要:類比一下你有一個巨型停車場,里邊分了不同的停車區集合,這里的,每個停車區可以停很多車下文提到的,相當于每個數據集合里邊可以有很多張數據表。 Node.js利用mongoose連接mongodb數據庫 Node.js連接mongodb數據庫有很多種方法,通過mongoose模塊引入是其中的一個方法 代碼組織結構 |---|根目錄 |---|---|connect.js(mongoose測...

    ssshooter 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<