在设置为 express-session 的服务器上,我在哪里可以看到设置 Cookie header?
Where can I see the Set Cookie header on the server set with express-session?
在邮递员中,当我向我的服务器发出请求时,我得到了这些响应 headers:
Connection: keep-alive
Content-Length: 3
Content-Type: text/html; charset=utf-8
Date: Wed, 02 Dec 2020 21:52:10 GMT
ETag: W/"3-f1UKn0xEFzo3Zk2TjxNV8PkqR6c"
Set-Cookie: connect.sid=s%3AHQ54fVZ7KP9jrPKP1j8Z93O8bIXN0CJl.lTSlYwA48TgarO7MtXGFiG1JL%2FPOHe%2FSGV0cqikGGU4;
Path=/; HttpOnly
X-Powered-By: Express
如何在 express 中查看这些 header?我在 res.send('hey')
之前为这个请求暂停了服务器,但我得到的只是一个 header:
res.getHeaders()
{x-powered-by: 'Express'}
我特别想查看服务器发送给浏览器的 cookie。如何在调试时查看 express 中的所有响应 header?
服务器文件:
const express = require('express');
const session = require('express-session');
const app = express();
app.use(
session({
secret: 'very secret 12345',
})
);
app.use(async (req, res, next) => {
req.session.visits = req.session.visits ? req.session.visits + 1 : 1;
console.log(`${req.method}: ${req.path}`);
console.log('req.headers.cookie: ', req.headers.cookie);
next();
});
app.get('/sayhi', (req, res, next) => {
res.send('hey');
});
app.listen(4001).on('listening', () => {
console.log('info', `HTTP server listening on port 4001`);
});
因为Content-Type
Set-Cookie
header是在你调用res.send()
之后设置的,所以你需要添加事件监听器,在响应关闭时监听。
然后你可以看到这个回复有什么header。
但是,它是响应发送后的回调函数,所以你只能看看这个响应中发送了什么值。
app.get('/sayhi', (req, res, next) => {
res.on("close", function() {
console.log("====== close event =======");
console.log(res.getHeaders());
console.log("====== close event =======");
})
res.send('hey');
});
顺便说一下,您还可以使用 DEBUG=* node your_server.js
查看其他库实现的一些调试消息。
在邮递员中,当我向我的服务器发出请求时,我得到了这些响应 headers:
Connection: keep-alive
Content-Length: 3
Content-Type: text/html; charset=utf-8
Date: Wed, 02 Dec 2020 21:52:10 GMT
ETag: W/"3-f1UKn0xEFzo3Zk2TjxNV8PkqR6c"
Set-Cookie: connect.sid=s%3AHQ54fVZ7KP9jrPKP1j8Z93O8bIXN0CJl.lTSlYwA48TgarO7MtXGFiG1JL%2FPOHe%2FSGV0cqikGGU4;
Path=/; HttpOnly
X-Powered-By: Express
如何在 express 中查看这些 header?我在 res.send('hey')
之前为这个请求暂停了服务器,但我得到的只是一个 header:
res.getHeaders()
{x-powered-by: 'Express'}
我特别想查看服务器发送给浏览器的 cookie。如何在调试时查看 express 中的所有响应 header?
服务器文件:
const express = require('express');
const session = require('express-session');
const app = express();
app.use(
session({
secret: 'very secret 12345',
})
);
app.use(async (req, res, next) => {
req.session.visits = req.session.visits ? req.session.visits + 1 : 1;
console.log(`${req.method}: ${req.path}`);
console.log('req.headers.cookie: ', req.headers.cookie);
next();
});
app.get('/sayhi', (req, res, next) => {
res.send('hey');
});
app.listen(4001).on('listening', () => {
console.log('info', `HTTP server listening on port 4001`);
});
因为Content-Type
Set-Cookie
header是在你调用res.send()
之后设置的,所以你需要添加事件监听器,在响应关闭时监听。
然后你可以看到这个回复有什么header。
但是,它是响应发送后的回调函数,所以你只能看看这个响应中发送了什么值。
app.get('/sayhi', (req, res, next) => {
res.on("close", function() {
console.log("====== close event =======");
console.log(res.getHeaders());
console.log("====== close event =======");
})
res.send('hey');
});
顺便说一下,您还可以使用 DEBUG=* node your_server.js
查看其他库实现的一些调试消息。