SailJs,NodeJs方法

时间:2015-07-07 18:23:14

标签: node.js oop sails.js prototype

我还在学习如何理解NodeJs / SailsJs,对不起,如果这听起来太愚蠢但我似乎无法搜索谷歌以获得更好的解释。我试过寻找节点OOP编程,但似乎没有解释。

采用以下查询代码

Company.findOne({'id':req.param('id')}).then(function(results){
    console.log(util.inspect(results, true, null))
})

输出

   { id: 1,
     companyName: 'Wunly Enterprise1',
     createdAt: null,
     updatedAt: Wed Jul 08 2015 01:43:19 GMT+0800 (SGT) }

但是在SailJs中,我可以使用以下代码来更新记录

 results.name = "change name";
 results.save(function(err,newresult){})

如果我在console.log中调用save方法并且没有这样的方法存在?

1 个答案:

答案 0 :(得分:6)

NodeJs中的console.log不会打印继承的方法(比如chrome,ff ......)。 save是每个记录继承的属性方法。

如果要打印对象的所有属性,可以使用此解决方案 https://stackoverflow.com/a/8024294/1334743

只是声明功能

function getAllPropertyNames( obj ) {
    var props = [];

    do {
        props= props.concat(Object.getOwnPropertyNames( obj ));
    } while ( obj = Object.getPrototypeOf( obj ) );

    return props;
}

并在您的示例中实现

Company.findOne({'id':req.param('id')}).then(function(results){
    console.log(getAllPropertyNames(result));
})