😇
【Node.js】JSON.stringify()でcircular Error
循環参照エラー
Nest.js の logger 実装の際に、request の内容を JSON.stringfy したら循環参照エラーになりました。
対処方法
循環参照を起こしている箇所を置き換えるだったり、循環参照でも使えるライブラリや、Node のutil.inspect
などあったのですが、
一番シンプルそうだったのが、JSON.stringify の option 指定です。
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return;
}
seen.add(value);
}
return value;
};
};
JSON.stringify(circularReference, getCircularReplacer());
// {"otherData":123}
Discussion