多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Meteor update等操作失敗原因及解決方法

Meteor update等操作失敗原因及解決方法

來源:程序員人生   發布時間:2015-05-19 08:23:51 閱讀次數:5459次

Meteor 提供了兩個 MongoDB 數據庫:1個客戶端緩存數據庫服務器上的1個 MongoDB 數據庫。當1個用戶更改1些數據時(例如通過單擊 Save),在閱讀器中運行的 JavaScript 代碼會更新本地 MongoDB 中的相應的數據庫項,然后向服務器發出1個 DDP 要求。該代碼立即像操作已取得成功那樣繼續運行,由于它不需要等待服務器回復。與此同時,服務器在后臺更新。如果服務器操作失敗或返回1個意外結果,那末客戶端 JavaScript 代碼會根據從服務器新返回的數據立即進行調劑。

昨天寫代碼的時候發現,發現有1個update操作總是失敗,而也沒有甚么毛病提示,只顯示個error。找了很久找不到問題出在哪。
這里寫圖片描述

然后去讀官方文檔,它是這樣寫的:


文檔中關于update的說明:
collection.update(selector, modifier, [options], [callback]) Anywhere

Modify one or more documents in the collection

Arguments

selector Mongo selector, or object id

Specifies which documents to modify

modifier Mongo modifier

Specifies how to modify the documents

callback Function

Optional. If present, called with an error object as its argument.

Options

multi Boolean

True to modify all matching documents; false to only modify one of the matching documents (the default).

再查看1次我寫的代碼,應當沒錯的。然后再mongodb的命令行工具上試試履行一樣語句也是可以的,因而我就覺得是Meteor的相干設置問題。

再往文檔中細看,發現問題了:


The behavior of update differs depending on whether it is called by trusted or untrusted code. Trusted code includes server code and method code. Untrusted code includes client-side code such as event handlers and a browser’s JavaScript console.

  • Trusted code can modify multiple documents at once by setting multi to true, and can use an arbitrary Mongo selector to find the documents to modify. It bypasses any access control rules set up by allow and deny.

  • Untrusted code can only modify a single document at once, specified by its _id. The modification is allowed only after checking any applicable allow and deny rules.


原來為了安全性,Meteor限制了在客戶端下默許的對數據庫的操作,對insert,update,remove等操作的selector只能為 _id,并且不能使用mutil等,所以我寫的那條update語句的毛病在于selector用了_id外的條件。所以看來解決方法有兩個:

  • 在客戶端只是用_id作為selector的操作,明顯這樣不方便
  • 服務器端寫allow規則, 允許客戶端直接對數據庫進行這些操作

文檔中關于allow的說明:
collection.allow(options) Server

Allow users to write directly to this collection from client code, subject to limitations you define.
Options

insert, update, remove Function

Functions that look at a proposed modification to the database and return true if it should be allowed.

因而寫了相干的allow規則, 讓他在某個情況下return true就能夠了

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩在线一区二区三区视频 | 免费国产成人高清在线观看不卡 | 国内精品久久久久影院亚洲 | 国产乱码精品一区二区三区中 | 激情五月开心婷婷 | 欧美日韩久久 | www.亚洲天堂| 一二三四在线播放免费视频中国 | 亚洲国产精品嫩草影院久久 | 天天在线欧美精品免费看 | 欧美在线不卡视频 | 国产三级做爰高清视频a | 国产精品久久久久无码av | 91情国产l精品国产亚洲区 | 国产精品亚洲片在线不卡 | 日本韩国一区二区三区 | 一级毛片一级毛片免费毛片 | 久久免费观看国产精品 | 成人久久精品 | 99久久中文字幕伊人 | 中文资源在线观看 | 五月激情婷婷综合 | 俺去啦最新 | 久久视频精品36线视频在线观看 | 激情区小说区偷拍区图片区 | 日韩欧美亚洲每日更新网 | 欧美日韩精品一区二区三区四区 | 久久精品中文字幕极品 | 宇都宫紫苑乳在线观看 | 日本成本人在线观看免费视频 | 国产一级毛片外aaaa | 性做久久久久久久久浪潮 | 欧美激情精品久久久久久久九九九 | 97婷婷色| xxxxxx国产精品视频 | 国产免费午夜a无码v视频 | 手机看片高清日韩精品 | 欧美视频在线一区二区三区 | 波多野结衣中文字幕一区二区三区 | 欧美一级视频免费 | 欧美激情视频二区 |