Node.js 保存不是一个函数

Node.js 保存不是一个函数,node.js,mongoose,Node.js,Mongoose,我需要在我的数据库中插入一个“caso”,但我收到一个错误,说明caso.save不是一个函数。我已经尝试了数千种不同的插入方式,但都没有成功。我做错什么了吗 注:我的caso.find(…)工作正常 服务器端代码: app.post('/api/casos', function (req, res) { var caso = new Caso(); caso = req.body; caso.save(function (err) {

我需要在我的数据库中插入一个“caso”,但我收到一个错误,说明
caso.save不是一个函数
。我已经尝试了数千种不同的插入方式,但都没有成功。我做错什么了吗

注:我的
caso.find(…)
工作正常

服务器端代码:

app.post('/api/casos', function (req, res) {
        var caso = new Caso();
        caso = req.body;

        caso.save(function (err) {
            if (err) {
                res.send(err);
            } else {
                res.json({message: "Caso adicionado com sucesso!"});
            }
        });
    });
控制器代码:

$http.post('/api/casos', $rootScope.caso).success(function(res){
            console.log(res);
        });
我的“caso”模型:

var mongoose = require('mongoose');

module.exports = mongoose.model('Caso', {
    caso: Number,
    doenca: String,
    areaDamaged: String,
    cankerLesion: String,
    cropHist: String,
    date: String,
    externalDecay: String,
    fruitSpots: String,
    fruitingBodies: String,
    fruitPods: String,
    germination: String,
    hail: String,
    intDiscolor: String,
    leafMalf: String,
    leafMild: String,
    leafShread: String,
    leafspotsHalo: String,
    leafspotSize: String,
    leafspotsMarg: String,
    leaves: String,
    lodging: String,
    moldGrowth: String,
    mycelium: String,
    plantGrowth: String,
    plantStand: String,
    precip: String,
    roots: String,
    sclerotia: String,
    seed: String,
    seedDiscolor: String,
    seedSize: String,
    seedTmt: String,
    severity: String,
    shriveling: String,
    stem: String,
    stemCankers: String,
    temp: String
}, "casos");
req.body JSON:

{ areaDamaged: 'low-areas',
  cankerLesion: 'dk-brown-blk',
  cropHist: 'same-1st-yr',
  date: 'Abril',
  externalDecay: 'Absent',
  fruitSpots: 'dna',
  fruitingBodies: 'Absent',
  fruitPods: 'dna',
  germination: '90-100%',
  hail: 'Yes',
  intDiscolor: 'None',
  leafMalf: 'Absent',
  leafMild: 'Absent',
  leafShread: 'absent',
  leafspotsHalo: 'absent',
  leafspotSize: 'dna',
  leafspotsMarg: 'dna',
  leaves: 'Abnorm',
  lodging: 'Yes',
  moldGrowth: 'Absent',
  mycelium: 'Absent',
  plantGrowth: 'Abnorm',
  plantStand: 'lt-normal',
  precip: 'Normal',
  roots: 'Norm',
  sclerotia: 'Absent',
  seed: 'Norm',
  seedDiscolor: 'Absent',
  seedSize: 'Norm',
  seedTmt: 'none',
  severity: 'pot-severe',
  shriveling: 'Absent',
  stem: 'Abnorm',
  stemCankers: 'below-soil',
  temp: 'norm',
  caso: 1,
  doenca: 'phytophthora-rot' }

您尝试使用的
save
方法是模型的一部分,而不是
req.body
。所以你必须摆脱这句话:

caso = req.body;
因为它覆盖了那一行:

var caso = new Caso();

您会添加post body JSON吗?我假设您的
req.body
有一个
save
方法,如果没有,您将通过执行
caso=req.body来覆盖您的caso对象
@BasimHennawi当然,请稍等。@NickRameau我不这么认为,请查看req.body
var caso=new caso();caso=所需主体什么。。。你在做什么?那不可能是故意的,现在我明白了。因此,我必须将每个值设置为我的新caso。比如,caso.doenca=req.body.doenca。。。谢谢对如果有帮助,请接受答案@古斯塔沃门冬a@GustavoMendonça或
var caso=新的caso(需求主体)