gpt4 book ai didi

javascript - 模拟调用 'upvote' 的效果时出现异常。类型错误 : undefined is not a function

转载 作者:可可西里 更新时间:2023-11-01 09:52:02 35 4
gpt4 key购买 nike

尝试为 Crowducate.me 的特定类(class)添加“upvoting”。

enter image description here

从图中可以看出,该方法已正确调用。但是,我认为更新方法(mongo)不被理解。这是我的个人源代码 all commits on Github.

我的 courses.coffee(mongo 集合)//顺便说一句:无法在此处设置正确的缩进格式:

class @Course extends Minimongoid
@_collection: new Meteor.Collection('courses')
...
Meteor.methods({
createCourse: ->
userId = Meteor.userId()
throw new Meteor.Error 403, 'Please login to create a course' unless userId
title = 'New Course'
course = Course.create {
owner: userId, courseTitle: title, published: 0, upvoters: [], votes: 0, slug: slugify(title)
}
return course._id

upvote: (courseId) ->
course = Course.first({_id: courseId})
console.log course

#userId = Meteor.user()
Course.update {
_id: courseId,
# upvoters: {$ne: user._id}
# }, {
# $addToSet: {upvoters: user._id}
$inc: {votes: 1}
}

还有我的html

<template name="courseListItem">
<div class="course-list-item">
<a href="{{#if isMyCoursesPath}}{{pathFor 'courseUpdate'}}{{else}}{{pathFor 'courseShow'}}{{/if}}">
<div class="course-img">
{{#if courseOwner}}
<div class="owner-options">
<a href="{{pathFor 'courseUpdate'}}" class="btn btn-default" title="Edit Course"><i class="fa fa-edit"></i></a>
<button class="btn btn-danger delete" title="Delete Course"><i class="fa fa-trash-o"></i></button>
</div>
{{/if}}
<img class="img-resonsive" src="{{courseThumb}}">
</div>
<div class="well relative">
<div class="course"><h4>{{maxChars courseTitle 40}} by {{owner}}</h4></div>
<p class="course-list-item-preview-text">{{maxChars getText 65}}</p>
<p class="course-list-item-preview-text-votes"><a href="#" class="btn btn-default btn-xs"><i class="upvote fa fa-thumbs-up"></i></a> <strong>{{votes}}</strong> Votes</p>
<!-- <p class="course-list-item-preview-text">12 Votes</p> -->
<div class="bottom">
<p><i class="fa fa-tags" title="Tags"></i> {{maxChars getKeywords 28}}</p>
<p><i class="fa fa-group" title="Age Group"></i> {{age}}</p>
</div>
</div>
</a>
</div>
</template>

我的助手:

'click .upvote': (evt) ->
Etc.prevent(evt)
Meteor.call 'upvote', this._id

也许这是特定的规则。到 Coffeecode 或 MinimongoId?如果你想在本地运行它,请使用 mrt install 并且不要更新包或 meteor。另外,您测试了投票,您需要快速创建一个类(class)(在“教学”部分下)。

最好的,阿米尔P.S.:只是想让你知道:我正在扩展另一个人的代码并且没有太多使用 CoffeeScript 的经验。

最佳答案

问题一定出在方法中:upvote 并且您调用了一个不存在的函数。

即使该方法看起来不错,也请尝试取消对简单的 console.log 'hi' 以外的任何内容的注释。并逐行删除取消注释。

或者可能是你使用的minimongoid包版本没有更新。请尝试使用 Course._collection.update(...)。

关于javascript - 模拟调用 'upvote' 的效果时出现异常。类型错误 : undefined is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388369/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com