TypeError:无法读取平均堆栈中未定义的属性“upvote”

时间:2015-05-23 22:36:42

标签: javascript node.js mongoose mean-stack

我正在为我的应用程序使用MEAN堆栈,我在每个问题的应用程序中都有一个upvote部分,试图提出问题angular.module('myApp') .service('myService', function () { var service = this; this.Util = { extend: function (blah) { //blah blahh return blah }, create: Object.create || (function (blah) { //blah blah return blah })(), //more blah blah }; var something = this.Util.create(blah); }); 。我的路线文件是这样的:

routes.js

TypeError: Cannot read property 'upvote' of undefined

Question.js(Model)

app.put('/api/questions/:id/upvote', questions.upvoteQuestion);

questions.js(Controller)

var questionSchema = mongoose.Schema({
    question: {type:String, required:'{PATH} is required!'},
    category: [String],
    upvotes: {type: Number, default: 0},
    comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }],
    author: String
});

questionSchema.methods.upvote = function(cb) {
    this.upvotes += 1;
    this.save(cb);
};

不太确定错误是什么。

1 个答案:

答案 0 :(得分:-1)

如果你将问题改为:

,你试图将upvotes称为问题属性。
question: {type:String, required:'{PATH} is required!', upvotes: {type: Number, default: 0}}

你可以用它来引用它:     req.question.upvote

然后将upvote方法的第二行更改为:

questionSchema.methods.upvote = function(cb) {
    this.question.upvotes += 1;
    this.save(cb);
};

正如现在所定义的那样,upvotes是questionSchema的一个属性,如果你瞄准的目标不能将其称为问题属性。

但是,我还没有和猫鼬一起工作。