【问题标题】:Keystonejs get insterted id valueKeystonejs 获取插入的 id 值
【发布时间】:2021-08-13 11:23:54
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 为什么不预先生成id?

标签: node.js mongodb mongoose keystonejs


【解决方案1】:

你应该在 keystoneJs 中使用update handler

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

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 一起使用的更详细示例

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 2019-04-30
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多