保存图像mongodb node js

时间:2018-04-11 09:52:50

标签: node.js mongodb mongoose

模式

 images:{ type : Array , "default" : [] }

控制器

   return new Promise(function(resolve,reject){
        var dt = new Date(req.body.dateOfBirth)
            var experiences = new Experiences({
            'images': req.body.images

        });
        experiences.save(function(err,experiences){
            if(err){
                reject(err);
            }else{
                resolve(experiences);
            }
        });
    });

我需要将多个图片保存到单个图片

将数据发布为:

"https://images.pexels.com/photos/346768/pexels-photo-346768.jpeg?w=940&h=650&auto=compress&cs=tinysrgb","https://images.pexels.com/photos/287240/pexels-photo-287240.jpeg?w=940&h=650&auto=compress&cs=tinysrgb"

但是当我查看我的文档时。得到这样的结果:

"images" : [ 
    "\"https://images.pexels.com/photos/346768/pexels-photo-346768.jpeg?w=940&h=650&auto=compress&cs=tinysrgb\",\"https://images.pexels.com/photos/287240/pexels-photo-287240.jpeg?w=940&h=650&auto=compress&cs=tinysrgb\""
]

我做错了什么请帮帮忙? 我想要的结果如下:

"images" : [ 
"https://images.pexels.com/photos/346768/pexels-photo-346768.jpeg?w=940&h=650&auto=compress&cs=tinysrgb","https://images.pexels.com/photos/287240/pexels-photo-287240.jpeg?w=940&h=650&auto=compress&cs=tinysrgb"
]

1 个答案:

答案 0 :(得分:0)

我的猜测是req.body.images是字符串化的。我相信它是一个包含许多值的字符串,而不是一个数组。当您将其发布到MongoDB时,由于您指定images必须是数组,因此它将其保存为一组标记值。

所以,盲目猜测,但我相信你发布(客户端)类似的东西:

$.post("/save", { images : JSON.stringify(imagesArray) } )

当您应该按原样发布数组时:

$.post("/save", { images : imagesArray} )

但很难确定,因为我们没有前端代码,甚至没有console.log(req.body.images)