哈,今天終于想起來我還有個博客了!http://fanjinlong.com/2016/04/28/%E4%B8%80%E4%B8%AA%E6%85%8C%E9%87%8C%E6%85%8C%E5%BC%A0%E7%9A%84%E4%B8%AD%E5%8D%88/
成都創(chuàng)新互聯公司主營勉縣網站建設的網絡公司,主營網站建設方案,成都app軟件開發(fā)公司,勉縣h5小程序定制開發(fā)搭建,勉縣網站營銷推廣歡迎勉縣等地區(qū)企業(yè)咨詢
上午11點46,我正在神游中午和媳婦出去吃什么。同事跑來說他賬號底下負責的用戶不能排重要級別,提示權限不夠。當時我是懵比的,畢竟快吃飯了,腦子里想的都是韭菜雞蛋餃子。一看時間離12點還一會,想著搞定了就走?。╢lag已立)
嗯,權限不夠。容我瞧瞧代碼——確實不夠>_<。機智如我立馬想到了兩個解決辦法。
1.自己賬戶底下的用戶講道理是可以隨意改動的,這塊權限加的不合適。那就需要刪掉這個控制語句,然后打包上傳重新部署;
2.權限不夠我就加!也就是數據庫里一個update的事情,還不用重新部署
我這么勤快的人,當然要選第二種了!畢竟那家東北菜館的餃子真是好吃。于是嘩嘩嘩連上MongoDB,db.xxx.update({"xxx":"xxx"},{$set:{"臥室權限":"xxx"}});
嗯,權限那塊的字符串太長了,容我復制個別人的。ctrl-c/v大法好。敲下回車,打開系統,輸入用戶密碼驗證?!坝脩裘艽a錯誤”。。ORZ...
怎么可能!我又沒改密碼,剛剛只是沒看清權限的字段名,update錯了一個,不過我立馬就改回來了啊。wtf!眼看著時間馬上就12點了。本來只是權限不夠而已,這下倒好,連系統都進不去了。怎么辦,冥冥中感覺餃子要離我而去了。
先解決問題吧,登錄不上去,就重置一下密碼。注冊郵箱是同事的,這么丟人的事我怎么可能讓他知道。先把數據庫里的郵箱改成我的……重置,輸入密碼,“用戶不存在”。誒???我一臉懵比。
難道是我改錯庫了?不可能啊,線上庫就一個地址。在配置文件里看也沒錯。難道我把剛那條數據誤刪了?重新查了好多遍,沒錯啊,這條數據老老實實的躺在那。此時我是崩潰的,時間已經到了12點15,媳婦打電話問我咋還沒到。我已經預感到危機了。
怎么辦,這活計果然急不得啊,早知道當初按方案一來,現在妥妥的在菜館吃餃子了。沒辦法,打日志吧。重置密碼的郵件傳了一個隨機數驗證的token參數和同事的id,我把DBCorsur根據id查到的打出來看看,一個一個對比參數。怎么就能返回null了呢。。
這么一看,問題就暴露了。我明明更新的時候數據類型是int,怎么日志打出來就是float了呢?而程序里解析都是這么來的: int xxx = Integer.parseInt(object.get("xxx").toString().trim());查出來的是float,用int轉換,還所有的參數都包在一個try里面,
怪不得返回的是null。查了半天,才知道shell的js語法數值類型都是float型的,所以如果要修改數值型數據,直接修改的話Long類型可以用NumberLong(),而int用NumberInt()改的話,要是值一樣mongodb是不會給你修改的。。被這個坑真是坑的莫名其妙。
終于能登錄了,改了那個搗亂的參數以后,密碼也不用重置了。郁悶的找到那個控制權限的地方,ctrl-D啪啪刪掉。打包上傳重新部署。over……
那么這個故事告訴了我?guī)讉€道理呢?1.flag不能亂立 2.解決方案簡單的說不定坑多 3.以后中午來活了就下午再動手(也可以引申到放假前不加新功能……除非你想加班) 4.耽誤了的時間就得從別的地方補回來——比如我就在大太陽底下一路跑到了飯店。