最近,我面临一个奇怪的问题,其中我在拦截器中执行以下代码,在STEP 1中,我可以获取req.header,但是当我到达STEP 2时,我正在获取异常“无法读取null的属性'length'”
RETURN REDUCE(r = "",
s IN [i IN RANGE(0, 24, 8) |
"0000000" + apoc.text.hexValue(
apoc.bitwise.op(
apoc.convert.toInteger("0x" + SUBSTRING($input, i, 8)),
$operation,
apoc.convert.toInteger("0x" + SUBSTRING($operand, i, 8))))] |
r + SUBSTRING(s, LENGTH(s)-8)
) AS res;
然后,再次在步骤3中,我可以使用“ req.headers.keys()”或将请求对象悬停在同一请求中看到所有键。
我怀疑,这背后的原因是标头的惰性初始化,但是如何保持安全检查,以免在运行时出现任何异常。
PS:我也保留了此检查,但工作辛苦:
private prepareUrlProperties(req: HttpRequest<any>) {
let urlProperties = {};
if (req.headers) { // STEP 1
try{
const metaData = JSON.parse(req.headers.get('metadata') || '{}'); // STEP 2
} catch (exp) {
console.log(exp);
}
urlProperties = { ...urlProperties, ...metaData }; // STEP 3
}
return urlProperties;
}
需要一些地方!
为req.headers附加console.logs,第一个位于步骤1,第二个位于步骤3。