回送模型对象JSON

时间:2019-06-27 08:59:22

标签: node.js json loopbackjs

我当前正在使用LoopbackJS3。我正在尝试为名为Answers的模型定义模型JSON属性。我不明白如何处理对象数组。

    Model.defineProperty('answers', {
        type: [{
            type: {
                type: {
                    type: String,
                    default: "text",
                    required: true
                },
                message : {
                    type: String,
                    required: true
                }
            },
            type: {
                type: {
                    type: String,
                    default: "image",
                    required: true
                },
                path : {
                    type: String,
                    required: true
                }
            }         
        }],
        required : false
    });

我希望看到这样的东西:

"answers": [
    {
      "type": "text",
      "message": "string"
    },
    {
      "type": "image",
      "path": "string"
    }
  ]

但实际上回送仅显示给我:

"answers": [
    {
      "type": "image",
      "path": "string"
    }
  ]

1 个答案:

答案 0 :(得分:0)

这是预期的。 您定义的对象两次具有键“类型”。

screenshot

对象不能有两次相同的密钥,只能保留最后一个。 我建议使用loopback-cli生成模型。

我不确定您是否可以定义具有两种不同类型的数组。 所有使用数组的示例都定义一种类型

['string'] 
[{type: 'string', required: true}]

我认为您有两个简单的选择:

  1. 定义模型元素

      

    elementType:“字符串”(您可以在保存elementType ===“ text”或“ image”之前实现
      值:字符串

  2. 使用这些关系

      

    元素属于线程
      线程hasMany元素

const thread = new Thread(...)
thread.answers = [
   {type: "text", value: "..."},
   {type: "image", value: "..."}
]

我希望这会有所帮助!