javascript - post params 没有存储在 Mongodb 中

标签 javascript node.js mongodb

我正在尝试使用 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/

相关文章:

javascript - jQuery - 如何从输入文件 img 制作缩略图

javascript - 有没有办法将这个 jquery 代码转换为 javascript?

node.js - 从手机浏览器登录 Facebook 时出错

嵌套对象的 Mongodb $addToSet

javascript - 如何将数据(整个数据库)从 meteor 部署应用程序导出到具有不同地址的另一个 meteor 应用程序?

javascript - 如何在流体宽度轮播中的页面之间创建间距?

javascript - 如何在 chrome 中调试以找出此代码不起作用的原因?

node.js - pug 中的 nodejs : Koa , 形式给出未定义

javascript - 如何将 Angular JS 添加到现有的 Node.js 应用程序?

node.js - Mongoose @set 和 $unset 条件