Я оцениваю koa js для решения, но столкнулся со следующей проблемой:
Наличие некоторых заголовков http, которые не всегда должны заполняться клиентом, иногда заголовок будет нулевым, но при обработкезаголовок на стороне сервера, сравнивающий его для нулевой / пустой строки, всегда возвращает ложь, даже если он нулевой.
Чтобы увидеть, каково значение и каков результат сравнения, проследили все возможные результаты, и вот следующее:
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 возвращает строку, но само значение равно нулю.Сравнение с нулевым или '' возвращает ложь.И на удивление .length возвращает 4!
У кого-нибудь есть предложения, как преодолеть эту проблему сравнения?