“路径”无效。必须是字符串或数组mongoose

时间:2015-05-25 19:41:38

标签: node.js mongodb

我正在使用node.js和mongoose编写代码,我遇到了发布材料的问题,材料是我的实体。

以下是架构:

new Schema({
            title: {
                type: String,
                trim: true,
                set: util.ucfirst,
                required: true
            },
            description: {
                type: String,
                required: true,
                trim: true
            },
            downloads:{
                type: Array,
                default: [],
                required: true
            },
            course_id: {
                type: String,
                required: false
            },
            _status: {
                required: false,
                default: true,
                type: Boolean,
                select: false
            },
            created_by:{
                type: String
            },
            created_at:{
                type: Date,
                default: Date.now
            },
            modified_by:{
                type: String
            },
            modified_at:{
                type: Date,
                default: Date.now
            }
        },
        {
            collection: collection,
            versionKey: true,
            strict: true
        })

现在使用这些数据我发布的样本数据接受2个“字符串”和1个或多个“文件”数据。

以下是后api电话:

exports.post('/', function(req,res,next){ 
    var _error = req.mydata.get('error');
    if( !_error ){
        var _object = req.mydata.get('data') || {},
            _files = req.mydata.get('files');       
        _object.downloads = (_files && Array.isArray(_files['upload'])) ? _files['upload'] : (_files && typeof _files['upload'] == "object") ? [_files['upload']] : []; 
        model.insert(_module, _object, function(err, entry){
            if( !err && entry ){
                res.status(200).json(entry);
                res.end();
            }else{
                next();
            }
        });
    }else{
        next(_error);
    }
});

但我收到的是以下输出,这是不期望的。 enter image description here

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。您无法将versionKey设置为true,Mongoose认为它是版本密钥的新名称 - 应该是字符串。只需省略versionKey参数,您就可以了。

我已经为此开了一个问题:https://github.com/Automattic/mongoose/issues/3747