来自 promise 的变量在 Bookshelf 上保持不变 save().then()
Variable from promise remains unchanged on Bookshelf save().then()
我有以下代码:
User.forge(req.body)
.save()
.then((model) => {
model.id = undefined;
console.log(JSON.stringify({data: model}));
res.json({data: model})
})
将其打印到控制台:
{"data":{"name":"Test User","username":"test_usr","role_id":1,"id":54}}
为什么即使在 Promise.then
上也不更改 model.id 的值?
您触摸的 id
只是一个方便的属性——它总是被命名为 id
,无论真实模型 ID 属性名称是什么。 stringify 使用的模型属性取自模型中的 attributes
对象。
所以您可以直接 model.attributes.id = undefined
,但不 推荐这种方法,因为它依赖于 Bookshelf 内部结构。
正确的方法是使用 model.set('id', undefined)
。
我有以下代码:
User.forge(req.body)
.save()
.then((model) => {
model.id = undefined;
console.log(JSON.stringify({data: model}));
res.json({data: model})
})
将其打印到控制台:
{"data":{"name":"Test User","username":"test_usr","role_id":1,"id":54}}
为什么即使在 Promise.then
上也不更改 model.id 的值?
您触摸的 id
只是一个方便的属性——它总是被命名为 id
,无论真实模型 ID 属性名称是什么。 stringify 使用的模型属性取自模型中的 attributes
对象。
所以您可以直接 model.attributes.id = undefined
,但不 推荐这种方法,因为它依赖于 Bookshelf 内部结构。
正确的方法是使用 model.set('id', undefined)
。