使用"表达"我设置了这个中间件:
$('.btn').click(function() {
var buttonValue = $(this).val();
var optionValue = $("#Sel option:contains("+buttonValue+")").val();
$("#Sel").val(optionValue);
});
$('.btn2').click(function() {
$('#Sel').prop('selectedIndex', 0);
});
以便在每个请求中,它的app.use(function(request, response, next) {
console.log(request.headers["user-agent"]);
// etc.
});
标题都显示在控制台中
但是你现在可能是一团糟user-agent
:
Mozilla / 5.0(Linux; Android 7.1.1; Nexus 5X Build / NMF26F)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 56.0.2924.59 Mobile Safari / 537.36
我真的想每个连接输出一次标题 - 而不是每次请求都输出。
我该怎么做?
答案 0 :(得分:1)
每次对HTTP堆栈(服务器)的请求每次都建立一个新连接..这就是HTTP协议的工作方式
编辑:
如果您需要跟踪访问者,您可以使用Cookie或更好的会话。这些将在每次请求时传送给您,当您没有找到任何附件时,您知道这是一个新的连接'
您可以将express-session用于此目的
答案 1 :(得分:1)
我认为这不会在express
中公开,这是一件好事,因为你要处理的最后一件事就是处理HTTP 1.1自己保持活着。
我会将user-agent
记录在一次发生的请求上,可能是用户身份验证请求或某种类型的请求。
编辑:要扩展第二部分,标准的auth流程之一可以如下:
因此,您可以在用户获取令牌时记录user-agent
,并在每个其他请求中记录令牌。这样,您可以在初始身份验证请求中轻松搜索日志文件中的用户代理。此令牌可以是会话ID,使用类似express-session的包,或更强大的身份验证令牌。
一旦用户通过身份验证,您还可以在会话对象服务器端存储user-agent
值,并添加在每个请求的trace
日志中记录会话的中间件。这样,您可以在每个请求上启用会话记录,并在需要时查看user-agent
。