我有以下代码:
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的值?
答案 0 :(得分:0)
您正在触摸的id
只是一个便利属性 - 无论真实的模型ID属性名称是什么,它总是被命名为id
。 stringify使用的模型属性取自模型中的attributes
对象。
所以你可以model.attributes.id = undefined
,但这种方法不推荐,因为它依赖于Bookshelf内部。
正确的方法是使用model.set('id', undefined)
代替。