(-。-;), 周末過得真是快啊, 很久以前就看到imooc上有個搭建個人電影網站一期 ,二期的視頻, 這兩周宅家里擼玩沒事干, 我也學著搭了一個, 這些東西都是基礎, 只要花點時間很好學的, nodeJS這東東就是輕量級, 哪里不爽點哪里。
如果你學著寫完可以學到:
- express新建項目
- express自帶的jade模板引擎的使用
- express的路由管理
- express中的權限管理
- express如何與mongoose結合, 以及mongoose中的schema和model的使用方法, and CRUD( you know what do i say o(^▽^)o)
- underscore的前端模板的使用
- grunt的nodemon模塊和concurrent模塊使用方法;
- 如何通過mongo-connect這個npm模塊保存用戶的信息(session);
....
整個網頁主要包含了以下四個模塊:
主頁 ( ?? ω ?? )y; 列表頁 電影詳情頁 管理頁 電影新增 電影刪除 電影信息編輯 注冊 登陸 登出
通過路由進行權限管理
用戶的評論 用戶評論互評
慕課網nodeJS的講師Scott提供的Github地址是:打開 ,這個項目的express是3.x系列的,所以使用express4.x系列的肯定跑不起來,然后我自己寫了一個4.x的,Github的項目地址是:沒有, 但是你可以點擊這里下載源碼, 作為學習的參考, 等我把界面再做漂亮點, 功能更好的時候就傳Git;
項目的主要目錄結構跟平常的express默認結構差不多
項目所依賴的模塊還挺多的.... 全安裝就好了;
其實bower, less和jslint, mocha, karma, kaola....我都沒有用, 太高端了用不起來..工具真心太多了;
主界面大概是這樣的,可以先睹為快:
視頻界面如下, 新增視頻的時候填寫的地址默認有一個youku的視頻地址, 圖片默認是博客園的logo圖片;
在mongoose中定義模型的靜態方法和實例方法是比較重要的, 以及通過設置字段類型為ObjectId進行關聯引用別的表指定_id的字段,我貼上些代碼防忘記:
var mongoose = require("mongoose"); var ObjectId = mongoose.Schema.Types.ObjectId; console.log( mongoose.Schema.Types.ObjectId ) var CommentSchema = new mongoose.Schema({ movie_id : String, replys : [ { to : { //相當于是引用了User表下_id值為指定值的單元 type : ObjectId, ref : "UserSchema" }, from : { type : ObjectId, ref : "UserSchema" }, content : String, time : { type : String, default : Date.now() } } ] }); CommentSchema.statics = { fetch : function(cb) { return this.find({}).exec(cb); }, findById : function(id,cb) { return this.findOne({_id:id}).exec(cb); }, findByMovieId : function(movie_id,cb) { return this.findOne({movie_id:movie_id}).exec(cb) }, findByMovieIdExec : function(movie_id) { return this.findOne({movie_id:movie_id}); } }; //每一次保存之前會調用這個方法; CommentSchema.pre("save",function(next) { next(); }); //為mongodb定義了這個數據模型, 這個數據模型和當前的數據庫綁定了; //這個就是數據庫內部的table名字; var Comment = mongoose.model("CommentSchema",CommentSchema); module.exports = Comment;
對于慕課網中的教程進行了一些改進, 比如評論的發布和拉取我通過ajax實時刷新獲取, 以及視頻的刪除不跳轉界面等, 也通過ajax進行刷新, 界面的美化(無視這句話)等;
end
作者: NONO
出處:http://www.cnblogs.com/diligenceday/
企業網站:http://www.idrwl.com/ 廈門點燃未來網絡科技
開源博客:http://www.github.com/sqqihao
QQ:287101329
微信:18101055830
文章列表