【问题标题】:How to access inner object in keystoneJS如何访问 keystoneJS 中的内部对象
【发布时间】:2016-09-13 21:57:03
【问题描述】:

假设我有一个类似的模型

University.add({
    university_id: { type: Types.Number, required: true, initial: true, index: true, unique: true },
    name: { type: Types.Text, required: true, index: true },
    address: { type: Types.Text, initial: true, required: false, index: false }
});

University.schema.add({
    "inner_object": {
        "name": String,
        "phone": String,
        "comment": String
    }
});

我尝试使用getUpdateHandler()更新对象

University.model.findOne().where('university_id', universityData.university_id).exec(function (err, university) {
    university.getUpdateHandler(req, res).process(req.body, {
        fields: "name, address, 'inner_object.name', 'inner_object.phone', 'inner_object.comment'"
    }, function(err) {
        if(err) {
            console.log(err);
            res.json({ status: false, data: null, message: 'Error while creating university'});
        } else {
            res.json({ message: 'University updated successfully', status: true, data: university});
        }
    });
});

我收到一个错误 UpdateHandler.process 调用了无效的字段路径:inner_object.name

如果有人遇到同样的情况,请更新

【问题讨论】:

    标签: node.js keystonejs


    【解决方案1】:

    您直接通过猫鼬将inner_object 添加到keystone 之外,这意味着keystone 不会知道它的存在。只需将其添加到第一个配置对象:

    University.add({
        university_id: { type: Types.Number, required: true, initial: true, index: true, unique: true },
        name: { type: Types.Text, required: true, index: true },
        address: { type: Types.Text, initial: true, required: false, index: false },
        inner_object: {
            name: {type:String},
            phone: {type:String},
            comment: {type:String}
        }
    });
    

    【讨论】:

    • 你将如何添加类似这样的对象数组?
    • 我认为通过梯形图是不可能的。然后你必须使用 schema.add,但是你不能通过 getUpdateHandler 更新它们,即你需要通过 mongoose 手动更新它们
    • 好的。这是主要用例:(
    猜你喜欢
    • 2016-06-25
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2015-08-30
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多