在两种情况下都试图将值赋给主体,因此响应有时包含有效负载,但是当有效负载出现时,它会在我粘贴时将有效负载添加为嵌套对象
main.js
const logError = (message, resp) => {
const logErrorPayload = {
status: resp.status,
body : resp || resp.payload
};
logger().error(message,logErrorPayload);
};
响应
{"level":50,"time":1565018976583,"pid":64,"hostname":"76b538d1a1fc","msg":"Error_V1 {\"status\":500,\"body\":{\"status\":500,\"payload\":{\"status\":500,\"title\":\"Internal Server Error\",\"detail\":\"Drug prices are not valid\"}}}","v":1}
预期
{"level":50,"time":1565018976583,"pid":64,"hostname":"76b538d1a1fc","msg":"Error_V1 {\"status\":500,\"body\":{\"status\":500,\"title\":\"Internal Server Error\",\"detail\":\"Drug prices are not valid\"}}}","v":1}
答案 0 :(得分:0)
您可能只是在寻找
const logError = (message, resp) => {
const logErrorPayload = {
status: resp.status,
body: resp.payload,
};
logger().error(message, logErrorPayload);
};
resp ||
使用整个resp
对象作为值,至少在resp
是真实值(当它具有属性并因此是对象时才是期望值)时使用
也许您打算使用resp && resp.payload
,它可以处理resp
是null
的情况,但是您需要为访问.status
做同样的事情:
const logError = (message, resp) => {
const logErrorPayload = {
status: resp && resp.status,
body: resp && resp.payload,
};
logger().error(message, logErrorPayload);
};
或者也许,考虑到resp
没有其他需要通过构造单独的logErrorPayload
而忽略的属性,您可以做到
const logError = (message, resp) => {
logger().error(message, resp);
};
答案 1 :(得分:-2)
Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
const target = {a:1,b:2}; const source = {b:4,c:5};
const returnTarget = Object.assign(target,source);
console.log(目标); //预期的输出:对象{a:1,b:4,c:5}
console.log(returnedTarget); //预期的输出:对象{a:1,b:4,c:5}