Keystonejs获取已插入的ID值

时间:2019-02-18 07:16:52

标签: node.js mongodb mongoose keystonejs keystone

我正在使用updateItem方法保存新记录。 以下是代码示例:

var vv = new vvmodel.model();
vvmodel.updateItem(vv, obj, function (error) {
  if(error)
    console.log('error :: ', error);
});

这不会发送任何可以插入id记录的对象。我们如何获取插入的记录ID?

谢谢

1 个答案:

答案 0 :(得分:0)

您应该在keystoneJs中使用update handler

一旦updateHandler.process运行无误,您可以访问.id上的vv字段

var vv = new vvmodel.model({
    // .... initial fields
}),

var updater = vv.getUpdateHandler(req, res, {
    errorMessage: 'There was an error creating your new model:'
});

updater.process(req.body, {
    flashErrors: true,
    logErrors: true,
    fields: 'field1, field2, field3'
}, function(err) {
    if (err) {
        locals.validationErrors = err.errors;
    } else {
        req.flash('success', 'Your model has been added');
        return res.redirect('/vv/detail/' + vv.id); // here you can access the id if request was successful.
    }
    next();
});

查看与sydjs site source一起使用的更详细的示例