正在构造 Mongo/Mongoose 有条件的对象(对于未知数量的属性)
Constructing Mongo/Mongoose object with conditions (for unknown number of properties)
我正在用 Node.js 中的 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()
}
有点乏味,因为实际上还有十几个潜在值。
安装下划线:
npm install underscore
使用 underscore 的 extend() 方法,该方法将第二个对象的属性分配给第一个对象,returns 第一个对象。
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()
}
我正在用 Node.js 中的 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()
}
有点乏味,因为实际上还有十几个潜在值。
安装下划线:
npm install underscore
使用 underscore 的 extend() 方法,该方法将第二个对象的属性分配给第一个对象,returns 第一个对象。
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()
}