我正在评估koa js的解决方案,但遇到了以下问题:
有一些不需要总是由客户端填充的http标头,这意味着有时标头为空,但是在服务器端处理标头以比较它的空/空字符串时,即使它为空,也总是返回false。 / p>
要了解比较的价值和结果是什么,请跟踪所有可能的结果,以下是其中的内容:
console.log(typeof ctx.get('X-SessionId'));
console.log(ctx.get('X-SessionId'));
console.log(!ctx.get('X-SessionId'));
console.log(ctx.get('X-SessionId') === null);
console.log(ctx.get('X-SessionId') == null);
console.log(ctx.get('X-SessionId') == '');
console.log(ctx.get('X-SessionId') === '');
console.log(ctx.get('X-SessionId').length);
输出:
string
null
false
false
false
false
false
4
此处,typeof返回字符串,但值本身为null。与null或''进行比较将返回false。令人惊讶的是,.length返回4!
有人建议如何克服这个比较问题吗?