我正在尝试使用 MEAN 堆栈构建一个简单的博客,目前正在设置后端。我正在使用 Postman 测试我的路线,由于某种原因,我无法在数据库中保存帖子的标题和正文。
我的模型:
models/posts/db.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var PostSchema = new Schema ({
title: { type: String },
body: { type: String },
date: { type: Date, default: Date.now }
});
module.exports = mongoose.model('Post', PostSchema);
我的 Controller :controllers/posts.index.js
var base = process.env.PWD;
var Post = require(base + '/models/posts/db.js')
var createPost = function(req, res) {
var post = new Post(req.body)
post.save(function(err, post) {
if(err) { res.sendStatus(500, err); }
res.json(post);
})
}
var getPosts = function(req, res) {
Post.find(function(err, posts) {
if (err) { res.sendStatus(500, err); }
res.json(posts);
})
};
module.exports = {
createPost,
getPosts
}
这是我在routes/index.js
中的主要路线
router.get('/posts', posts.getPosts);
router.post('/posts/create', posts.createPost);
module.exports = router;
我的主服务器正在使用 /api
端点:
`app.use('/api', routes);`
因此,在 Postman 中,当我向 /api/posts/create
发送包含标题和正文的帖子的 POST 请求时,会存储一个空帖子。我插入了类似的内容:
{
"__v": 0,
"_id": "5a29de91521f168eb9e1bcf2",
"date": "2017-12-08T00:36:33.280Z"
}
如有任何帮助,我们将不胜感激。
最佳答案
看起来帖子
可能无法获取您实际帖子的正文。您可以使用 body-parser
模块填充请求中的 body
属性。执行 npm install body-parser
并将其添加到您的代码中:
const bodyParser = require('body-parser')
app.use(bodyParser.json())
关于javascript - post params 没有存储在 Mongodb 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47706103/