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

資訊專欄INFORMATION COLUMN

Node.js學(xué)習(xí)之路26——Express的response對象

davidac / 513人閱讀

摘要:如果包含字符則將設(shè)置為。添加字段到不同的響應(yīng)頭將該字段添加到不同的響應(yīng)標(biāo)頭如果它尚未存在。

3. response對象 3.1 是否發(fā)送了響應(yīng)頭

res.headersSent布爾屬性,app是否發(fā)送了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 添加響應(yīng)頭信息

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

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

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 設(shè)置HTTP響應(yīng)Content-Disposition字段attachment

res.attachment([filename])

設(shè)置HTTP響應(yīng)Content-Disposition字段attachment

如果參數(shù)為空,那么設(shè)置Content-Disposition:attachment

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

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

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

3.4 設(shè)置cookie信息

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

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

設(shè)置cookienamevalue,value值可以是stringobject,options是一個對象

domain,string,cookie的域名,默認(rèn)為該app的域名

expires,date,過期時間

httpOnly,boolean,cookie的標(biāo)志位,只能允許http web server

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

path,string,cookie的路徑,默認(rèn)為/

secure,boolean,標(biāo)記只用于HTTPScookie.

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

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

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 結(jié)束響應(yīng)進(jìn)程

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

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

3.7 獲取請求頭信息

res.get(field)

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

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

res.json([body])

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

參數(shù)也可以為null或者undefined

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

res.links(links)

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

res.redirect([status], path)

如果不指定status狀態(tài),默認(rèn)狀態(tài)碼status code302 Found

如果要跳轉(zhuǎn)到外部的鏈接,需要加上http://

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

返回上一級的頁面,如果現(xiàn)在是在http://example.com/admin/post/new頁面,想要跳轉(zhuǎn)到上一級頁面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 發(fā)送HTTP響應(yīng)信息

res.send([body])

參數(shù)可以是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){...}])

根據(jù)文件名的擴(kuò)展名設(shè)置內(nèi)容類型響應(yīng)HTTP標(biāo)頭字段.除非在選項對象中設(shè)置了根選項, 否則路徑必須是文件的絕對路徑.

options是一個對象選項

maxAge,以毫秒為單位設(shè)置Cache-Control標(biāo)題頭的最大屬性或ms格式的字符串,默認(rèn)為0

root,相對文件名的根目錄

lastModified,將Last-Modified的標(biāo)題頭設(shè)置為操作系統(tǒng)上文件的最后修改日期.設(shè)置為false以禁用它.

headers,包含要與文件一起服務(wù)的HTTP標(biāo)頭的對象.

dotfiles,服務(wù)dotfiles的選項.可能的值是allow,deny,ignore,默認(rèn)值為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 設(shè)置狀態(tài)代碼

res.sendStatus(statusCode)

將響應(yīng)HTTP狀態(tài)代碼設(shè)置為statusCode, 并將其字符串表示形式作為響應(yīng)正文發(fā)送.

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 設(shè)置響應(yīng)頭信息

res.set(field, [value])

可以單個設(shè)置,也可以用一個對象設(shè)置

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

res.set({
  "Content-Type": "text/plain",
  "Content-Length": "123",
  "ETag": "12345"
})
3.16 設(shè)置響應(yīng)狀態(tài)

res.status(code)

使用此方法可設(shè)置響應(yīng)的HTTP狀態(tài).它是節(jié)點響應(yīng)的式別名statusCode

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

res.type(type)

將內(nèi)容類型HTTP標(biāo)頭設(shè)置為指定類型的mime.lookup()所確定的mime類型。如果type包含/字符, 則將Content-Type設(shè)置為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 添加字段到不同的響應(yīng)頭

res.vary(filed)

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93057.html

相關(guān)文章

  • Node.js學(xué)習(xí)之路27——Expressrouter對象

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

    NicolasHe 評論0 收藏0
  • Node.js學(xué)習(xí)之路25——Expressrequest對象

    摘要:對象表示請求并且具有請求查詢字符串參數(shù)正文標(biāo)題頭等屬性對應(yīng)用程序?qū)嵗囊帽4媪撕芏鄬κ褂弥虚g件的應(yīng)用程序?qū)嵗囊脪燧d在路由實例上的路徑請求主體和和包含在請求正文中提交的數(shù)據(jù)的鍵值對默認(rèn)情況下它是未定義的當(dāng)您使用體解析中間件如和時將被填 2. request req對象表示http請求,并且具有請求查詢字符串,參數(shù),正文,http標(biāo)題頭等屬性 app.get(/user/:id, ...

    cocopeak 評論0 收藏0
  • Node.js學(xué)習(xí)之路24——Express框架app對象

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

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

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

    CastlePeaK 評論0 收藏0
  • Node.js學(xué)習(xí)之路23——Node.js利用mongoose連接mongodb數(shù)據(jù)庫

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

    ssshooter 評論0 收藏0

發(fā)表評論

0條評論

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