MEAN堆栈 - 尝试POST给出404

时间:2015-07-29 21:11:43

标签: node.js mongodb express

背景

我正在编写我的第一个MEAN应用程序。我试图创建一个API,允许在名为" chassis"的集合上使用基本的CRUD操作。

问题

到目前为止,我可以使用find()获取所有记录。我也可以找到BYId,并更新现有记录,没问题。 但是,当我尝试POST时,我收到以下错误:

dev@devbox:~/nimble_express/nimbleApp$ curl -X POST localhost:3000/chassis/ -d name=widget123 -d location=Canada -d ffd=test123 -d hw_model=hp -d asset_tag=12344
<h1>document must have an _id before saving</h1>
<h2></h2>
<pre>Error: document must have an _id before saving
    at null._onTimeout (/home/dev/nimble_express/node_modules/mongoose/lib/model.js:112:18)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)</pre>
dev@devbox:~/nimble_express/nimbleApp$ 

代码

我在routes / chassis.js文件中有以下逻辑:

var express = require('express');
var router = express.Router();

//var mongoose = require('mongoose');
var Chassis = require('../models/Chassis.js');

/* GET chassis listing. */
router.get('/', function(req, res, next) {
  Chassis.find( function(err, documents) {
    if (err) return next(err);
    res.json(documents);
  });
});

/* GET /chassis/id */
router.get('/:id', function(req, res, next) {
  Chassis.findById(req.params.id, function (err, post) {
    if (err) return next(err);
    res.json(post);
  });
});


/* POST /chassis */
router.post('/',function(req, res, next) {
        console.log(req);
  Chassis.create(req.body, function(err, post) {
    if (err) return next(err);
    res.json(post);
  });
});

/* UPDATE /chassis/id */
router.put('/:id', function(req, res, next) {
  Chassis.findByIdAndUpdate(req.params.id, req.body, function(err, post) {
  if (err) return next(err);
  res.json(post);
  });
});

module.exports = router;
~                                                        

我已经尝试使用谷歌搜索此错误,但还没有发现任何有用的东西。 任何指针都会有所帮助和赞赏!

0 个答案:

没有答案