将moongose对象映射到expressjs中的DTO对象

时间:2016-09-13 11:08:59

标签: javascript node.js mongodb express mongoose

我想将moongose结果中的对象解析为DTO以获取我的观点。我在这里有一个查询示例,它返回一个结果mongoose对象:

const returnedData = (err, result) => {  
        //Result object is a schema from Moongose 
        cb(err, result);
    };

Text.findOne({}).exec(returnedData); 

我的文字架构示例:

const mongoose = require('mongoose');

const textSchema = new mongoose.Schema({

    TextMessage: String,
    ZIndex: Number,
    Color: String,
    FontSize: String,
    FontFamily: String 

}, { timestamps: true , collection: 'Text'});


const Text = mongoose.model('Text', textSchema);

module.exports = Text;

我的DTO对象:

let dto = 
{
    TextMessage: null,
    _id: null

}

我的想法是"自动地图"属性值从Text对象到我的dto对象,并丢弃值,如timestamps。

自动生成此内容的任何想法或库?谢谢!

1 个答案:

答案 0 :(得分:1)

这对你来说可能很方便

http://mongoosejs.com/docs/api.html#document_Document-toObject

由于mongoose返回的对象基本上是在Document之后建模的,因此上面说明了如何直接将它转换为普通的javascript对象。

您还可以在转化后验证同步。