使用从POST请求派生为JSON的对象合并/覆盖JS对象

时间:2017-11-09 16:43:27

标签: javascript json node.js object

我得到了以下用于存储设置参数的obj。它保存默认值我希望通过POST请求进入的JSON覆盖此obj的属性。当然,我可以单独转换JSON中的每个字符串值并将其分配给相应的属性,但是,这是一个很好的做法吗?

    const moth_eng = require('./fractioning_model_v1.1.js'); 

        // in ./fractioning_model_v1.1.js set default values
            var settings = {
                i: 1, 
                rev_share: 0.2, 
                parent_level_share: 0.45, 
                d: 2,
                get user_pool_share () {return this.i - this.rev_share;},
                get remaining_levels_pool () {return this.user_pool_share - this.parent_level_share;},
            };

        //main.js    
            app.post('/fractobj', function (req, res) {
              logger.log("info", "/fractobj requested - post")
              let obj = req.body;
              moth_eng.set_sttngs(obj);
              res.send(moth_eng.getFractions(10));
            });

        // in ./fractioning_model_v1.1.js
            function setSettings(obj){
                Object.assign(settings, obj);
            }

我的问题是,Object.assign()确实将值分配为字符串,因为JSON的值是字符串,我发现它不会分别为每个值转换这些值。

从大局来看,解决这个问题的方法是什么?

0 个答案:

没有答案