文章出處

  (-。-;), 周末過得真是快啊,  很久以前就看到imooc上有個搭建個人電影網站一期 ,二期的視頻, 這兩周宅家里擼玩沒事干, 我也學著搭了一個, 這些東西都是基礎, 只要花點時間很好學的, nodeJS這東東就是輕量級, 哪里不爽點哪里。

  如果你學著寫完可以學到:

  1.   express新建項目
  2.   express自帶的jade模板引擎的使用
  3.   express的路由管理
  4.   express中的權限管理
  5.   express如何與mongoose結合, 以及mongoose中的schema和model的使用方法, and CRUD( you know what do i say o(^▽^)o)
  6.   underscore的前端模板的使用
  7.   grunt的nodemon模塊和concurrent模塊使用方法;
  8.   如何通過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 

廈門點燃未來網絡科技有限公司, 是廈門最好的微信應用, 小程序, 微信網站, 公眾號開發公司


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()