【Go web開發之revel+mgo】第9章 其它和??

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

做到這裡其實可以說教程已經基本完結了。

但是,還記得我們首頁Home右上方那個提醒了嗎?這一章我們就來做一下這個東西。

它提醒的是最近1小時內有更新。那麼首先我們的blog.go裡面應該有一個按照時間查詢的方法。

好,開啟blog.go添加方法:

func (dao *Dao) FindBlogsByDate(start time.Time) int{blogCollection := dao.session.DB(DbName).C(BlogCollection)query := blogCollection.Find(bson.M{"cdate":bson.M{"$gte": start}})cnt,err := query.Count();if err!=nil{revel.WARN.Printf("Unable to Count blog: error %v", err)}return cnt}

注意,mgo的find方法裡面,我們嵌套了兩個bson.M,第一個很好理解,第二個裡面的$gte是什麼呢?大於等於(>=)恩,沒錯,mgo還有其它的操作,大家如果有需要就去找一找(話說 ,博主為了找到這個,可是費了一番時間的),最後這個方法只是返回一個統計而已,對啊,我們只需要這樣就夠了。

在controllers/app.go的Index方法裡面,修改一下:

func (c App) Index() revel.Result {dao, err := models.NewDao()if err != nil {c.Response.Status = 500return c.RenderError(err)}defer dao.Close()//dao := models.NewDao(c.MongoSession)blogs := dao.FindBlogs()now := time.Now().Add(-1 * time.Hour)recentCnt :=dao.FindBlogsByDate(now);return c.Render(blogs,recentCnt)}

我們在最後加了點時間處理的東西,對,目前時間減去1小時,就是我們想要的結果 。不要忘了在import裡面加入我們的time包

好,開啟views下的header.html將裡面的:

<li class="{{.home}}">                <a href="/" >Home</a>                <span class="navbar-news " title="最近1小時有1個更新">1</span>              </li>

修改為:

<li class="{{.home}}">                <a href="/" >Home</a>                {{if .recentCnt}}                {{if gt .recentCnt 0}}                <span class="navbar-news " title="最近1小時有{{.recentCnt}}個更新">{{.recentCnt}}</span>                {{end}}                {{end}}              </li>

ok,趕快試試把。



最後,這裡說一下,最後的RSS,暫時就不做了,我還不知到具體怎麼做,去看了golang.usr的訂閱,就只是一個xml的頁面,這個不是我想要的,先這樣把。

源碼地址:https://github.com/joveth/GBlog

交流QQ:158325682


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.