Express Mongoose未保存数据

时间:2016-12-01 23:24:26

标签: javascript node.js mongodb express mongoose

使用mongoose保存我在Express nodejs中创建的对象时遇到了一些问题。

它始终表示已保存,但即使我登录服务器并尝试自行获取,也无法找到该对象。

保存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');

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我的问题是我在mongo shell和mongodb中都是一个菜鸟。

我实际上正在保存,但我在mongo shell中搜索的方式是错误的。如果您在没有参数的情况下运行mongo,我每次都会在test数据库中启动它时,我没有意识到。

首先要输入您想要的数据库:

mongo

然后通过以下方式检查其中的任何文件:

    `mongo [database_name]` 

我真正的问题是我的 `db.collections.count()` `db.collections.find()` 错了,我不得不查找正确的参数。

这就是工作版本现在的样子:

Shares.findById()