Невозможно сохранить данные в mongoDB с помощью mongoose - PullRequest
0 голосов
/ 10 января 2020

Я новичок в mon goose и mongoDB и не могу сохранить данные в коллекции. Попытался найти решение, но мне ничего не кажется неправильным, может кто-нибудь, пожалуйста, посмотрите на это, что не так

Это модель, которую я определил

const mongoose = require('mongoose')

const { Schema } = mongoose

const ProductSchema = new Schema({
    name: String,
    image: String,
    price: String,
    description: String
})

module.exports = mongoose.model('Product', ProductSchema)

В приложении. js file

const Product = require('./models/product')

mongoose.Promise = global.Promise;
mongoose.connect(
    'mongodb://127.0.0.1:27017/ecommerce-app',
    { useNewUrlParser: true }
)

app.get('/seeddb', (req, res)=>{
    const data = [
        {
            id: 1,
            name: 'Product name',
            description:'This product details will be shown here',
            image: 'http://placehold.it/355x255',
            price: 12,
            __v: 0
          },
          {
            id: 2,
            name: 'Product name',
            description:'This product details will be shown here',
            image: 'http://placehold.it/355x255',
            price: 24,
            __v: 0
          }]

data.forEach((product)=>{
        const newProduct = new Product({
            name: product.name,
            description: product.description,
            image: product.image,
            price: product.price
        })
        newProduct.save((result)=>{
            if(result){
                console.log('Data is saved into the database')
            }else{
                console.log('Not saved')
            }
        }) // saving products into the database
    })
})

1 Ответ

0 голосов
/ 10 января 2020

Обещание сохранения mon goose возвращает ошибку в первом параметре обратного вызова и результат во втором

Итак, ваши данные фактически сохраняются в БД, но вы неверно оцениваете ответ

Измените следующую строку в вашем коде

newProduct.save((result)=>{
            if(result){
                console.log('Data is saved into the database')
            }else{
                console.log('Not saved')
            }
        }) // saving products into the database

На,

newProduct.save((error,result)=>{
            if(result){
                console.log('Data is saved into the database')
            }else{
                console.log('Not saved',error)
            }
        }) // saving products into the database

Это должно работать для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...