在设置了快速会话的服务器上,我在哪里可以看到Set Cookie标头



在poster中,当我向服务器发出请求时,我会得到以下响应标头:

连接:保持活动
内容长度:3
内容类型:text.html;charset=utf-8
日期:2020年12月2日星期三21:52:10 GMT
ETag:W/quot;3-f1UKn0xEFzo3Zk2TjxNV8PkqR6c">
设置Cookie:连接。sid=s%3AHQ54fVZ7KP9jrPKP1j8Z93O8IXN0CJl.lTSlYwA48TgarO7MtXGFiG1JL%2FPOHe%2FSG0cqikGGU4;
路径=/;HttpOnly
X-Powered-By-Express

如何在express中看到这些标头?就在res.send('hey')之前,我暂停了服务器的请求,但我得到的只有一个标题:

res.getHeaders()
{x-powered-by: 'Express'}

我特别想查看服务器发送到浏览器的cookie。调试时,如何在express中查看所有响应标头?

服务器文件:

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-TypeSet-Cookie标头是在调用res.send()之后设置的,所以需要添加事件侦听器以在响应关闭时侦听
然后您可以看到此响应有哪些标头
但是,它是发送响应后的回调函数,所以您只能查看此响应中发送的值。

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来查看由其他库实现的一些调试消息。

相关内容

最新更新