javascript - 如何给JS对象赋值?

标签 javascript ecmascript-6 error-handling

试图在两种情况下都将值赋给主体,因此响应有时包含有效载荷,但是当它作为有效载荷时,它将有效载荷添加为我粘贴的嵌套对象

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/

相关文章:

java - 处理(Drop and Log) Kafka producer 发布的不良数据,这样 Spark (Java) Consumer 不会将其存储在 HDFS 中

asp-classic - On Error Goto 抛出错误

javascript - 为什么属性分配的箭头函数在声明时绑定(bind) this ?

javascript - 如何加载变量并能够添加到它?

javascript - 获取reactjs中组件的可选 Prop 列表

javascript - 如何使用 Javascript 计算正确答案的数量?

javascript - 在 nodeJs v4.4.2 中使用 ES6 模板文字

javascript - 支持 Mocha ES6 测试吗?

error-handling - 使用问号(?)运算符发生错误时如何登录文件?

javascript - Airbnb 搜索页面上的 jquery resultview 如何工作?