使用express插入mongo

时间:2015-10-21 04:46:01

标签: mongodb express

我正在尝试使用express将数据放入mongodb,但它总是存储空白...也不打印任何控制台日志:

启动服务器后我正在点击的网址是

http://localhost:3000/posts?title=test&link=http://test.com

它显示以下输出:

{ “__ V”:0, “_ ID”: “562717b064002b1c2e697b33”, “注释”:[], “upvotes”:0}

router.get('/posts', function(req, res, next) {
console.log('reached ere '+req);
 var post = new Post(req.body);

post.save(function(err, post){
if(err){ return next(err); }

res.json(post);
 });


 });

邮政计划:

 var mongoose = require('mongoose');

 var PostSchema = new mongoose.Schema({
 title: String,
 link: String,
upvotes: {type: Number, default: 0},
comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }]
 });

 mongoose.model('Post', PostSchema);

1 个答案:

答案 0 :(得分:0)

您将API称为

  

http://localhost:3000/posts?title=test&link=http://test.com

titlelink作为查询参数发送到服务器,而不是正文参数。所以在这种情况下你的req.body将是一个空对象。这就是没有数据保存在您的帖子集合中的原因。

这里有两个选项:

  1. 更改您的API,以便在帖子集合中保存req.query,您可以执行以下操作:
  2. 替换

    var post = new Post(req.body);
    

    var post = new Post(req.query);
    
    1. linktitle作为正文参数而不是查询参数。