在NodeJS中添加新的属性给JSON对象

我在下面的NodeJS中调用一个函数的API方法,接收一个JSON对象的intent ,试图添加一个新的属性“testing”,并返回该对象。 问题是新的属性“testing”永远不会显示在返回的对象。 但是,现有的“加工”的价值正确地变化了。 有任何想法吗?

 function process_first(req, res, next) { Intent.getFirstUnprocessed() .then(intent => { intent.tested = "DONE"; intent.processed = true; res.json(intent); }) .catch(e => next(e)); } 

intent最初有这个价值:

 {"processed":false,"payload":"hello","createdAt":"2017-02-16T05:07:19.596Z"} 

并返回:

 {"processed":true,"payload":"hello","createdAt":"2017-02-16T05:07:19.596Z"} 

你的意图对象可以是一些自定义对象(由像mongoose一样的库返回)。 大多数情况下你不能直接修改这些对象。 你必须将它们更改为纯javascript对象。 这些库为此提供了方法(如toObject或toJSON)。 另外,如果它是一个像地图这样的集合或类似的东西,它也有toObject方法。

如果对象是地图试试这个:

 function process_first(req, res, next) { Intent.getFirstUnprocessed() .then(intent => { var intenObject = intent.toObject(); intenObject.tested = "DONE"; intenObject.processed = true; res.json(intenObject); }) .catch(e => next(e)); } 

如果它是一个JSONstring

 function process_first(req, res, next) { Intent.getFirstUnprocessed() .then(intent => { var intenObject = JSON.parse(intent); intenObject.tested = "DONE"; intenObject.processed = true; res.json(intenObject); }) .catch(e => next(e)); }