国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

NODEJS項目實踐0.5 - 完結[inspector,git]

edgardeng / 1586人閱讀

摘要:一前言上節我們主要應用了部分模塊功能,本節我們再演示下常用的功能,使用,并發布到阿里云,就完成了系統的教程。本身支持很好的的開發體驗,其也集成了測試功能,但這個不是我推薦的,自行百度調試。

一、前言

上節我們主要應用了部分nodejs模塊功能,本節我們再演示下nodejs常用的debug功能,git使用,并發布到阿里云,就完成了 0.*系統的教程。

GIT:https://github.com/xiaolulu/mynodejs.git

參考:http://www.upopen.cn

二、調試模塊

debug,即開發過程中的運行跟蹤,是開發過程中的不可缺少的。如同頁面端開發過程中,如果沒有chrome的inspect element,開發過程中的問題排查,將是非常困難的。

???nodejs目前常用的有兩種類型的調試方案

???1、以 webstorm為代表的開發編輯器類調試。webstrom本身支持很好的nodejs的開發體驗,其也集成了測試功能,但這個不是我推薦的,自行百度 “ webstorm nodejs 調試 ”。

???2、第二種是npm 下的 node-inspector,我使用的編輯器就是ubuntu下的gedit,即使在win7下使用的也是較古老的 edit plus,因為開發過程中,不需要什么提示功能,webstorm本身很大,啟動起來也占用很大的資源。相比之下,gedit + node-inspector,則更加輕量。

???全局安裝:

npm install -g node-inspector

???啟動

???ssh執行

node-inspector

???會提示

Visit http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 to start debugging.

???再開一個終端,cd到項目目錄,執行

node-dev –debug app.js

???上一節我們講node-dev,使用了其自動 restarting,如果不需要高度,執行 node-dev app.js即可。

???瀏覽器A打開

http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858

???瀏覽器A即會顯示成debug模式,

???再用瀏覽器B打開我們項目,瀏覽器A就會顯示nodejs端的代碼,調用起來和頁面端一樣一樣的。所以用 node-inspector可以安裝后即可快速上手,不需要任何配置,使用起來不需額外成本,這也是我推薦的原因。

???如下圖:

三、git

???git的常用命令可參見

http://www.upopen.cn/article/list?kind=git

???參照上面的教程,在 github上申請賬號、新建項目、添加本地生成的key之后,就可以開始使用了。

???cd到我們的項目 root,執行

git init    

???將本地文件夾初即化為 git目錄,通過 ls -la,可以看到其下多了.ssh的隱藏文件夾,用于存放git信息

???執行

git remote add origin git@github.com:/.git

???將本地目錄和遠程目錄關聯起來

git config -- global user.name 

git config – global user.email  

???配置自己的git信息,用于提交的記錄author。

git add *

???添加所有的文件到暫存區

git commit -m "我的第一個項目"

???將暫存區的文件提交到 git 目錄

git push -u origin master

???按提示輸入你的git帳號及密碼,將git 目錄的文件提交到遠程github上

???我們即完成了本地代碼的提交,具體命令解釋及更多命令應用還是參照

???http://www.upopen.cn/article/list?kind=git

四、服務器

???此處我使用的阿里云服務器,管理上簡單些,選了個最低配置,1000/年,www.upopen.cn就是在阿里云上,七牛,百度也提供了這樣的服務器。購買好服務器后,選擇安裝ubuntu系統。

???連接服務器

ssh  -l root

???用戶名先默認用 root即可。按提示輸入密碼即可登錄

???按項目約定安裝,nginx / nodejs / mongo / git 等,并創建根目錄

???克隆遠程庫到本地

git clone root git@github.com:xiaolulu/mynodejs.git

???拉取遠程庫的數據到本地

git pull origin master

???在此我們使用了與上面git不同的命令,其實也可以按init/ remote來,為了多使用幾個命令,另外,第三
部分是新建庫,此部主要是拉取。對后面的使用是一樣的。

???同樣的配置成功后,訪問該你的服務器IP,站點即發布成功。

???如果有域名了更好,不過域名現在都需要備案了,需要些時間。

五、validate.js

???最后稍講下頁面端的js,原本不是我們本系列的重點,和大家探討下,如何寫一個可復用、解耦的組件,小微框架的思想也不過如此。

???驗證組件有很多種寫法,但往往越高級的,限制性越大,我們寫一個輕量級的,拋磚引玉。

???首先我們分析下驗證功能,得出以下一些原則

???1、每個輸入項都可以配置驗證規則

???2、可指定觸發事件,如keyup或 change時觸發驗證

???3、可配置一些通用的規則如非空、最小值、最大值、只能輸入數字、字母、電話、身份證等

???4、可配置自定義規則,如注冊時,再次輸入密碼項的規則和密碼項需一致。

???5、提供錯誤提示的回調,往往錯誤提示形式是一致的,不需要提供回調,我們提供更自由的顯示方式。

???以注冊頁面表單為例,定義輸入框的規則。在root/static/module/issue/register.js下新增

javascript    var username = $( "#username" ),
        password = $( "#password" ),
        email = $( "#email" );
    //定義驗證規則
    var usernameRule = [{
            "noBlank": "請輸入用戶名",    //非空
            "min": [ 3, "用戶名不能少于3位"],   //最小
            "max": [ 16, "用戶名長度不能多于16位"],   //最大
            "typeEN": "用戶名只能為字母及數字"     //準輸入類型
        }, function( prompt ){  //錯誤提示回調
            $( "#usernameTip" ).html( prompt );
        }],
        passwordRule = [{
            "noBlank": "請輸入密碼",
            "self": function( cb ){ //自定義規則
                cb( "密碼不能全為數字" );
                return isNaN( this.value - 0 );
            }
        }],
        email = [{
            "noBlank": "請輸入注冊郵箱",
            "typeEmail": "郵箱格式不正確"  //指定某定義規則
        }, function( prompt ){
            $( "#emailTip" ).html( prompt );
        }];

    //為指定指定表單添加指定觸發事件的指定規則
    validate( username, [ "keyup" ], usernameRule );
    validate( password, [ "change" ], passwordRule );
    validate( email, [ "foucsOut" ], emailRule );

???在root/static下新建 widget/,用于存放組件。其下新建 validate/validate.js

javascriptdefine(function(  ){

    var isArray = function( value ){
        return Object.prototype.toString.call( value ) == "[object ]"
    }

    /*定義常用規則,通過判斷值是否符合規則返回true / false */
    var Regular = {

        //非空
        noBlank: function( value ){
            return !!value;
        },
        //最小
        min: function( value, rule ){
            return value.length >= rule;
        },
        //最大
        max: function( value, rule ){
            return value.length <= rule;
        },
        //中文、英文
        typeZE: function( value ){
            return /^[u4E00-u9FA5uf900-ufa2duFE30-uFFA0a-zA-Z]+$/.test( value );
        },
        //英文、數字
        typeEN: function( value ){
            return /^[0-9|a-z|A-Z]+$/.test( value );
        },
        //數字
        typeNum: function( value ){
            return !isNaN( value );
        },
        //電話
        typePhone: function( value ){
            return /^1[0-9]{10}$/.test( value );
        },
        //email
        typeEmail: function( value ){
            return /^(w)+(.w+)*@(w)+((.w+)+)$/.test(value)
        }

    }
    //循環對規則進行驗證,主要分類兩種。一種是self,一種是已定義的常用規則。
    function check( rules, cb ){

        var rule,
            prompt,
            codex,
            value = this.value;
        for ( rule in rules ){

            prompt = rules[ rule ];
            isArray( prompt ) && ( codex = prompt[0] ) && ( prompt = prompt[1] );
            //這里是針對 即帶值,又帶提示的規則 [ 3, "用戶名不能少于3位"]
            //否則只帶提示的規則,如非空,電話號碼等值可定的規則
            if( rule == "self" ){   //驗證自定義的定義
                if( rules[ rule ].call( this, cb ) !== true ){
                    return false;
                };
            } else if( !Regular[ rule ]( value, codex ) ){  //驗證上面定義過的規則
                cb( prompt )
                return false;
            }
            cb( "" );
        }
        return true;

    }
    //開始的驗證函數,對某元素el添加指定事件events的驗證規則rules,驗證結果在cb中執行
    function validate( el, events, rules, cb ){

        if( rules ){

            cb = rules[1];
            rules = rules[0];
            $.each( events, function( k, event ){
                el.on( event, function(){
                    check.call( this, rules, cb );
                });

            });

        } else {
            //這里是對不用傳觸發條件,直接進行驗證的規則。主要是針對form.submit時需一次驗證所有輸入框時
            cb = events[1];
            rules = events[0];
            return check.call( el.get( 0 ), rules, cb );

        }

    }

    return validate

})

???上面是寫了一種較初級的驗證函數,不過也可以解決大部分的驗證場景,常用規則可自行添加。

六、結語

???至此,除了將數據存取部分和前臺分離 及redis外,我們基本完成了0.1中所設定的功能,并應用到所列舉的知識點,各知識點都是針對本項目使用了初級的功能。

???簡單總結下,前面5節所講過的知識點:

???1、安裝、使用ubuntu,在Linux平臺下開發項目,提高開發效率,擴展知識面。

???2、使用nodejs,基于express、ejs框架,實現的基礎的靜態頁面訪問

???3、使用nginx,搭建靜態服務器,并做了代理轉發及負載

???4、據項目優化目錄結構,做到分類明晰,靜態、項目資源分離,各文件做意義劃分,便于后面擴展

???5、使用mongodb,實現了數據的存取,完成注冊、登錄等操作的客戶端 - 服務端的數據交互

???6、頁面端使用requireJs來做模塊管理并簡單實現了驗證模塊。

???7、使用了npm 的 node-dev[自啟動]、md5[加密]、domain[異步異常]、pm2[進程守護]、log4js[服務日志]、node-inspector[開發調試]等模塊。

???8、實現了cookie和session的操作,保持用戶登錄狀態

???9、實現據登錄狀態的頁面訪問準入控制權限。

???10、git操作,提交到服務器上。

???上面的知識在項目上應用的較初級,后面對每個技術點都會做多帶帶的文章補充,希望對我們都有所幫助,拋磚引玉,大家多做深入研究。

???下一個系列的教程中,我們會對上面這些知識有個逐步高級的應用,并增加markdown,頁面靜態化,nodejs的單元測試等,這塊在upopen.cn的文章系統上已經應用。

???本部分的教程結束。謝謝!

技術新Q群:43548556

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39181.html

相關文章

  • NODEJS項目實踐0.5 - 完結[inspector,git]

    摘要:一前言上節我們主要應用了部分模塊功能,本節我們再演示下常用的功能,使用,并發布到阿里云,就完成了系統的教程。本身支持很好的的開發體驗,其也集成了測試功能,但這個不是我推薦的,自行百度調試。 一、前言 上節我們主要應用了部分nodejs模塊功能,本節我們再演示下nodejs常用的debug功能,git使用,并發布到阿里云,就完成了 0.*系統的教程。 GIT:https://gith...

    Nino 評論0 收藏0
  • express中間層搭建前端項目1

    摘要:從前端小白到精通首先需要自行下載安裝安裝地址我的版本是,安裝之后,需要安裝依賴以及生成調試工具,親測對版本比較敏感,只兼容低版本的所以調試可以用或者用軟件進行調試安裝調試鏈接,下載包,忘記了模板引擎用的是,喜歡用其實一樣,只是語法有 從前端小白到精通express 首先需要自行下載安裝nodejs nodejs安裝地址//我的版本是4.7.0, 安裝nodejs之后,需要npm in...

    stefanieliang 評論0 收藏0
  • nodejs調試方法

    摘要:調試方法提供了一個內建調試器來幫助開發者調試應用程序。這兩個參數只會啟動監聽模式,不會進入命令行調試模式,而且前者會運行完所有代碼,通常可用于事件調試,后者會在進入時中斷,方便從頭開始調試。安裝編輯器使用配置調試的配置信息如下圖。 Nodejs調試方法 1. Node debug Nodejs提供了一個內建調試器來幫助開發者調試應用程序。使用debug模式時,Node.js 會啟動De...

    jcc 評論0 收藏0
  • NodeJs項目中的一些要點記錄

    摘要:前言學習也有一段時間了,踩過許多坑,在這里打算記錄一下自己覺得有用的點,以備以后所需。代碼調試一般我們調試項目都是通過前端或者后端,這總是顯得不夠靈活。即使是內置的也不夠友好。這樣修改文件時服務就會自動重啟了。 前言 學習NodeJs也有一段時間了,踩過許多坑,在這里打算記錄一下自己覺得有用的點,以備以后所需。 代碼調試 一般我們調試Js項目都是通過Alert()(前端)或者 Cons...

    superPershing 評論0 收藏0
  • 完結匯總】iKcamp出品基于Koa2搭建Node.js實戰共十一堂課(含視頻)

    摘要:云集一線大廠有真正實力的程序員團隊云集一線大廠經驗豐厚的碼農,開源奉獻各教程。融合多種常見的需求場景網絡請求解析模板引擎靜態資源日志記錄錯誤請求處理。結合語句中轉中間件控制權,解決回調地獄問題。注意分支中的目錄為當節課程后的完整代碼。 ?? ?與眾不同的學習方式,為你打開新的編程視角 獨特的『同步學習』方式 文案講解+視頻演示,文字可激發深層的思考、視頻可還原實戰操作過程。 云...

    sPeng 評論0 收藏0

發表評論

0條評論

edgardeng

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<