2016-12-01 2 views
0

У меня есть некоторые проблемы с сохранением объекта, который я создал в Express nodejs с использованием мангуста.Экспресс Mongoose не сохраняет данные

Он всегда говорит, что сохранен, но никогда не может найти объект, даже если я запишусь на сервер и попытаюсь получить его сам.

маршрут Экспресс спасти MongoDB:

router.post('/share', function(req, res, next){ 
    //console.log('Post Request Made', req); 

    //switch to be inputed as parameters of the request 
    //save share 
    var share = new Shares({ link: req.body.link, description: req.body.description }); 
// var share = new Shares({ req.data.link, req.data.description }); 
    console.log('request body', req.body); 
    console.log('to be added', share); 
    //save to database 
    share.save(function(err, share){ 
     if(err){ 
      console.log(err); 
     } else { 
      console.log('the object was saved' , share); 
     var id = share._id; 
     res.send(id); 
     } 
    }); 
}); 

консоли журнала:

request body { link: 'test', description: 'test' } 
to be added { link: 'test', 
    description: 'test', 
    _id: 5840b0393181d4000f652cba, 
    clicks: 0 } 
the object was saved { __v: 0, 
    link: 'test', 
    description: 'test', 
    _id: 5840b0393181d4000f652cba, 
    clicks: 0 } 
POST /share 200 73.618 ms - 26 
This is the link page with id: 5840b0393181d4000f652cba 
found [] 
GET /fluff/link/5840b0393181d4000f652cba 200 20.387 ms - 266 

Конфигурация:

var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://mongo/shares'); 
require('./models/Shares'); 
+0

ли проверить вас на Монго дб, чтобы увидеть его хранить или нет? – BlackMamba

+0

Я на самом деле решил это сейчас. Я не изменился в базе данных, чтобы убедиться, что я был в правильной области, после этого я включил опцию debug в mongoose, а затем правильный метод запроса отправит мой ответ немного. –

ответ

0

решаемые проблемы. Моя проблема заключалась в том, что я - noob в mongo shell и mongodb в целом.

Я действительно спасал правильно, но способ, который я искал в оболочке mongo, был неправильным. Я не понимал каждый раз, когда ваш в оболочке mongo запускается в базе данных test, если вы запустили mongo без аргументов.

Так первая вещь, чтобы войти в базу данных, которую вы хотите быть в:

`mongo [database_name]` 

затем проверить наличие документов там:

`db.collections.count()` 
    `db.collections.find()` 

Моей реальной проблемой, что мой Shares.findById() был неправильно, и мне пришлось искать правильные параметры.

это то, что версия работает выглядит сейчас:

Shares.findById(id.toString(), function(err, share){ 
    if(err){ 
      console.log('error', err); 
     } else { 
      console.log('found', share); 
     } 
    }); 
Смежные вопросы