一、`res.send()`
1. 功能
该方法用于发送各种类型的响应,包括字符串、对象、数组、Buffer 等。它会自动设置响应的 `Content-Type` 头。
2. 示例代码
const express = require("express");const app = express();app.get("/", (req, res) => {res.send("Hello, World!");});app.get("/data", (req, res) => {const data = { message: "This is some data" };res.send(data);});const port = 3000;app.listen(port, () => {console.log(`Server running on port ${port}`);});
二、`res.json()`
1. 功能
专门用于发送 JSON 响应,它会将传入的对象或数组转换为 JSON 字符串,并设置 `Content-Type` 为 `application/json`。
2. 示例代码
app.get("/json-data", (req, res) => {const jsonData = { name: "John", age: 30 };res.json(jsonData);});
三、`res.sendFile()`
1. 功能
用于发送文件作为响应,需要指定文件的绝对路径。可以设置一些可选参数,如 `root` 来指定文件的根目录。
2. 示例代码
const path = require("path");app.get("/download", (req, res) => {const filePath = path.join(__dirname, "public", "example.txt");res.sendFile(filePath);});
四、`res.status()`
1. 功能
用于设置响应的 HTTP 状态码,它可以链式调用其他响应方法。
2. 示例代码
app.get("/error", (req, res) => {res.status(404).send("Page not found");});
五、`res.redirect()`
1. 功能
用于将客户端重定向到另一个 URL。可以指定相对路径或绝对路径,还可以设置重定向的状态码(默认为 302)。
2. 示例代码
app.get("/old-page", (req, res) => {res.redirect("/new-page");});app.get("/permanent-redirect", (req, res) => {res.redirect(301, "https://example.com");});
六、`res.set()` 和 `res.get()`
1. 功能
`res.set()` 用于设置响应头。可以传入一个键值对来设置单个响应头,也可以传入一个对象来一次性设置多个响应头。
`res.get()` 用于获取响应头的值。
2. 示例代码
app.get("/custom-header", (req, res) => {res.set("Custom-Header", "Custom Value");const headerValue = res.get("Custom-Header");console.log(headerValue); // 输出: Custom Valueres.send("Response with custom header");});
七、`res.cookie()`
1. 功能
用于设置 HTTP Cookie。可以指定 Cookie 的名称、值以及一些可选参数,如过期时间、路径、域等。
2. 示例代码
const cookieParser = require("cookie-parser");app.use(cookieParser());app.get("/set-cookie", (req, res) => {res.cookie("username", "John", { maxAge: 900000, httpOnly: true });res.send("Cookie set");});
八、`res.clearCookie()`
1. 功能
用于清除客户端的 Cookie。需要指定要清除的 Cookie 的名称。
2. 示例代码
app.get("/clear-cookie", (req, res) => {res.clearCookie("username");res.send("Cookie cleared");});