我正在为我的应用程序使用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);
};
不太确定错误是什么。
答案 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的一个属性,如果你瞄准的目标不能将其称为问题属性。
但是,我还没有和猫鼬一起工作。