用条件构造Mongo / Mongoose对象(对于未知数量的属性)

时间:2015-02-17 19:43:27

标签: node.js mongodb object mongoose

我在Node中使用Mongoose创建一个对象。我不知道我发送给控制器的数据中有多少属性。我知道在很多情况下,数据肯定没有模型中的某些属性。这是我这样做的方式,我想听听是否有更好的方法:

function makeContent( user, contentInfo ) {

    var content = new Content({
        user: user,
        stream: req.body.type,
        added: ( new Date() / 1),
        url: req.body.url
    })
    if ( contentInfo.meta.date ) {
        content.date = contentInfo.date
    }
    if ( contentInfo.meta.likes ) {
        content.likes = contentInfo.meta.likes
    }
    if ( contentInfo.meat.dislikes ) {
        content.dislikes = contentInfo.meta.dislikes    
    }

    contend.save()  
}

这有点单调乏味,因为实际上还有十几个潜在的价值观。

1 个答案:

答案 0 :(得分:2)

安装下划线:

npm install underscore

使用下划线的extend()方法,该方法将第二个对象的属性分配给第一个对象,并返回第一个对象。

var _ = require('underscore')

function makeContent( user, contentInfo ) {

    var content = new Content(_.extend({
        user: user,
        stream: req.body.type,
        added: ( new Date() / 1),
        url: req.body.url
    }, contentInfo.meta))

    content.save()  
}