使用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');
答案 0 :(得分:0)
解决了这个问题。我的问题是我在mongo
shell和mongodb中都是一个菜鸟。
我实际上正在保存,但我在mongo
shell中搜索的方式是错误的。如果您在没有参数的情况下运行mongo
,我每次都会在test
数据库中启动它时,我没有意识到。
首先要输入您想要的数据库:
mongo
然后通过以下方式检查其中的任何文件:
`mongo [database_name]`
我真正的问题是我的 `db.collections.count()`
`db.collections.find()`
错了,我不得不查找正确的参数。
这就是工作版本现在的样子:
Shares.findById()