Сохранить изображения mongodb node js

схема

 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"
]

как вы вставляете данные в изображения при отправке?

Nikhil Savaliya 11.04.2018 11:56
images:{ type : [String], "default" : [] }, а затем push в этот (образ) массив
Muhammad Usman 11.04.2018 11:58

@NikhilSavaliya Я упомянул в вопросе __posting Data как: __

Devendra chauhan 11.04.2018 12:00

@GeorgeBailey, я наталкиваю на нить свои изображения. тогда это дает мне такой результат. как мне протолкнуть его как объект?

Devendra chauhan 11.04.2018 12:00

Я прошу показать код того, как вы публикуете

Nikhil Savaliya 11.04.2018 12:06
how do i push it as object? -> Вы определяете массив как тип, затем говорите, что хотите "images" : [ "https....." ], а теперь говорите, что хотите объект?
Jeremy Thille 11.04.2018 12:06

@JeremyThille, если использование массива не работает, могу ли я использовать объект?

Devendra chauhan 11.04.2018 12:14

Вам нужно использовать lodash или жесткий код для обработки ваших данных публикации, прежде чем добавлять их в moongdb ...

Truong Dang 11.04.2018 12:36

@TruongDang, пожалуйста, обновите мой код ответом?

Devendra chauhan 11.04.2018 12:39
"https://images.pexels.com/photos/346768/pexels-photo-346768‌​.jpeg?w=940&h=650&au‌​to=compress&cs=tinys‌​rgb","https://images‌​.pexels.com/photos/2‌​87240/pexels-photo-2‌​87240.jpeg?w=940&h=6‌​50&auto=compress&cs=‌​tinysrgb" Как вы отправляете его на серверную часть, вы получаете неправильный результат, потому что при отправке данных может что-то не так.
Nikhil Savaliya 11.04.2018 12:50

@TruongDang Нет, вы не нужно, чтобы использовать Lodash. Я никогда не использовал Lodash, и на самом деле есть несколько вещей, которые Lodash может сделать, что нелегко сделать с ES6. Эта проблема выглядит как простая проблема с приведением типов.

Jeremy Thille 11.04.2018 13:09
0
11
182
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что req.body.images строковый. Я считаю, что это строка, содержащая множество значений, а не массив. Когда вы публикуете это в MongoDB, поскольку вы указали, что images должен быть массивом, он сохраняет его как массив стригированных значений.

Итак, слепое предположение, но я считаю, что вы публикуете (на стороне клиента) что-то вроде:

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

когда вы должны просто опубликовать свой массив как есть:

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

Но это сложно сказать наверняка, потому что у нас нет кода интерфейса или даже console.log(req.body.images).

Другие вопросы по теме