试图在两种情况下都将值赋给主体,因此响应有时包含有效载荷,但是当它作为有效载荷时,它将有效载荷添加为我粘贴的嵌套对象
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}
最佳答案
您可能只是在寻找
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);
};
关于javascript - 如何给JS对象赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57362119/