我正在尝试使用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);
答案 0 :(得分:0)
您将API称为
将title
和link
作为查询参数发送到服务器,而不是正文参数。所以在这种情况下你的req.body
将是一个空对象。这就是没有数据保存在您的帖子集合中的原因。
这里有两个选项:
req.query
,您可以执行以下操作:替换
var post = new Post(req.body);
与
var post = new Post(req.query);
link
和title
作为正文参数而不是查询参数。