Javascript promise中的变量在Bookshelf save()上保持不变。然后()
我有以下代码:Javascript promise中的变量在Bookshelf save()上保持不变。然后(),javascript,es6-promise,bookshelf.js,Javascript,Es6 Promise,Bookshelf.js,我有以下代码: User.forge(req.body) .save() .then((model) => { model.id = undefined; console.log(JSON.stringify({data: model})); res.json({data: model})
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上也不更改model.id的值。那么
?您正在触摸的id
只是一个方便的属性——它总是被命名为id
,不管真正的model id属性名称是什么。stringify使用的模型属性取自模型中的属性
对象
因此,您可以只执行model.attributes.id=undefined
,但不建议使用这种方法,因为它依赖于书架内部
正确的方法是使用model.set('id',未定义)