gpt4 book ai didi

javascript - Meteor:插入仅在客户端工作,不会持久保存在服务器端数据库中

转载 作者:行者123 更新时间:2023-11-28 07:37:48 25 4
gpt4 key购买 nike

每次用户执行操作时,我都会尝试将文档插入到 Activities 集合中。以下是我的设置方法:

这是我在 collections/activities.coffee 中的 createActivity Meteor.method:

@Activities = new Mongo.Collection('activities')

Activities.allow
insert: (userId, activity) ->
activity.userId == userId

Meteor.methods
createActivity: (movieId, userId) ->
# if Meteor.isServer
# timer = Stats.createTimer("methods.createActivity")
Activities.insert {
docId: movieId
userId: userId
action: "favorite"
collection: "movies"
createdAt: new Date
}, (error, results) ->
console.log error, results
return

这是它在另一个集合中被调用的地方 - collections/lists.coffee。它在另一个 Meteor.method 中被调用,该方法在点击事件上被调用

Meteor.methods
toggleFavorited: (movieId) ->
if Meteor.isServer
timer = Stats.createTimer("methods.toggleFavorited")
user = Meteor.user()
return unless user?
favorited = Meteor.call('toggleInList', user.favorites, movieId)
if favorited
Meteor.call 'createActivity', movieId, Meteor.userId() #LOOK HERE !!!!!
Movies.update({mid: movieId}, {$inc: favorites: 1})

else
Movies.update({mid: movieId}, {$inc: favorites: -1})
if Meteor.isServer
timer.stop()
favorited

这是我的出版物和订阅:server/publications.coffee

Meteor.publish 'activities', ->
return Activities.find()

lib/router.coffee

Router.configure
layoutTemplate: 'layout'
loadingTemplate: 'loading'
notFoundTemplate: 'notFound'
trackPageView: true
waitOn: ->
[
Meteor.subscribe("activities")
]

这是我执行触发 Activties 插入方法的用户操作时的控制台日志: enter image description here

但是该文档并未保存在数据库中!这是为什么?

感谢您的帮助

最佳答案

您是否能够共享您的文件夹结构,您的方法可能是在meteor认为只是客户端特定代码的某个地方定义的,这可以解释为什么它没有在服务器上执行。

我的项目有以下文件夹:

/client/
/both <-- accessible to both client & server
/server <-- looks like you have this, server only code.

如果不这样做,也许可以尝试将方法代码移动到/both/lib 文件夹并查看它是否在服务器上运行。

关于javascript - Meteor:插入仅在客户端工作,不会持久保存在服务器端数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28405573/

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