Node系列——express項目搭建

一、項目環境搭建

1.一、 安裝node這個很少說了。

1.二、安裝express,全局安裝-g

npm install -g express

1.三、安裝express-generator,全局安裝-g

    express4.0以後把建立一個APP的功能分離出來爲express-generator,沒它你建立不了應用程序,須要全局安裝-gjavascript

npm install -g express-generator

1.四、建立express項目

    在想要建立的項目目錄下打開cmd窗口,這樣就會建立以下目錄文件結構,項目就算建立完畢了。php

    這個時候package.json文件中喲express,可是有沒有express-generator.html

    若是不是全局安裝的上面兩個模塊就只能手動找到模塊底下的bin文件中執行。
java

express JadeWebApp  //默認是jade引擎

express -e EjsWebApp //要建立ejs引擎用下面的命令



二、項目介紹

2.一、項目結構介紹

    1.node_modules文件夾node

   這文件夾就是在建立完項目後,cd到項目目錄執行npm install後生成的文件夾,下載了項目須要的依賴項web

    2.package.json文件express

        此文件是項目的配置文件(可定義應用程序名,版本,依賴項等等)npm

        node_modules文件夾下的依賴項是從哪裏知道的呢?緣由就是項目根目錄下的這個package.json文件,執行npm install時會去找此文件中的dependencies,並安裝指定的依賴項編程

    3.public文件夾(包含images、javascripts、stylesheets)json

        這個文件夾作過Web開發的應該一看就知道,爲了存放圖片、腳本、樣式等文件的

    4.routes文件夾

        用於存放路由文件

    5.views文件夾

        存放視圖

2.二、項目內容介紹

1.app.set(name,value)

       把名字爲name的項的值設爲value,用於設置參數

//設定端口
app.set('port', process.env.PORT || 3000);
//設定視圖路徑主要清楚__dirname的意思就能夠了,它是node.js中的全局變量,表示取當前執行文件的路徑     
app.set('views', path.join(__dirname, 'views'));   
//設定視圖引擎模板,還能夠設定其餘模板,後續介紹
app.set('view engine', 'jade');

2.app.use([path], function)

     用這個方法來使用中間件,由於express依賴於connect,有大量的中間件,能夠經過app.use來使用;path參數能夠不填,默認爲'/' 

//這一句中可能要注意一下,express.static()是處理靜態請求的,
//設置了public文件,public下全部文件都會以靜態資料文件形式返回
//(如樣式、腳本、圖片素材等文件)
app.use(express.static(path.join(__dirname, 'public'))); 


//上面代碼表示當用戶使用/訪問時,調用routes,即routes目錄下的index.js文件,
//其中.js後綴省略,用/users訪問時,調用routes目錄下users.js文件
var routes = require('./routes/index');
var users = require('./routes/users');
app.use('/', routes);
app.use('/users', users);

  

3.app.get(name)

    獲取名爲name的項的值

    if(app.get('env') === 'development') {  
      app.use(function(err, req, res, next) { 
          res.status(err.status|| 500);       
           res.render('error', {           
            message: err.message,  
              error: err        
            });   
        });
    }
    //表示若是是開發環境,處理error時會輸出堆棧信息

4.路由文件index.js

    主要看下面這段代碼

    router.get('/', function(req, res) {  res.render('index', { title: '<h1>Express</h1>',users:[{username: 'Wilson'},                                {username: 'Wilson Zhong'},                                {username: 'Zhong Wei'}]             });});

這段表示,router.get表示經過get請求/時,響應後面的function處理,兩個參數分別是request、response;

res.render表示調用模版引擎解析名字index的模板,傳並傳入了title和users兩個對象作爲參數;

爲何它會知道解板views目錄下的index.ejs?而不是其它目錄下的文件,或者後其它後綴名的文件?

三、node中經常使用模塊介紹



四、node項目調試介紹

調試nodejs目前知道的有三種方式:

a.下載VS2012的nodejs插件,用VS2012調試

b.用webForm   在app.js頁面右鍵選擇debug,這個我以爲最好用。

c.下載node-inspector模塊。

    我親測過a和c,vs我就不說了,必須強大,缺點就是感受就點大材小用了,寫個nodejs而已,大動干戈啓動VS有點太卡了。因此我用的c方式,固然 了,提早還須要一個文本編輯器,nodejs的文本編輯利器當屬Sublime Text了,很爽的,完爆nodepad++和ue,並且它也能夠編輯其餘語言。

利用node-inspector調試方式以下:

.首先全局安裝

npm install node-inspector -g

②.用node --debug-brk  app.js啓動項目
③.而後新打開一個窗口,啓動 node-inspector
出現以下:
Node Inspector v0.5.0  info  - socket.io started
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

瀏覽器中調試輸入   : http://127.0.0.1:8080/debug?port=5858

④.不出意外將會在瀏覽器看到源代碼的調試界面,ps:最好用谷歌瀏覽器,不解釋。


d. 最後再推薦一個模塊supervisor,最好全局安裝npm install -g supervisor,這樣啓動程序時(如app.js)能夠 supervisor app啓動,這樣它會監視你的代碼,一旦代碼修改了就會自動重啓服務,沒必要手動,調試很方便


http://blog.csdn.net/kkkkkxiaofei/article/details/32935199

Ejs引擎中的三種標籤

1.<%= %>

這個標籤在接到收到title: '<h1>Express</h1>'時,從顯示效果來看,他直接輸出HTML標籤到頁面上,輸出的是轉義後的變量值

2.<%- %>   

而這個標籤,從顯示效果上看,他沒有直接輸出HTML代碼到頁面上,輸出的是沒有轉義後的變量值

3.<% %>

而這個標籤,從顯示上看,他循環了出來參數中的值,標籤中是javascript邏輯代碼,注意括號的開閉合





node中的中間件

所謂的中間件就是相似於過濾器,面向切面編程,在執行一些東西以前要先執行這些東西。

http://www.yuansir-web.com/2013/06/25/%E7%90%86%E8%A7%A3node-js%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%BB%A5%E5%8F%8Aconnect-%E6%A8%A1%E5%9D%97/

node中的緩存策略

http://www.infoq.com/cn/articles/nodejs-8-connect-module-part-2/


免責說明

一、本博客中的文章摘自網上的衆多博客,僅做爲本身知識的補充和整理,並分享給其餘須要的coder,不會用於商用

二、由於不少博客的地址已經記不清楚了,因此不會在這裏標明出處


OK,這樣就算入門了吧,基礎的東西推薦你們去匯智網上去學習。

相關文章
相關標籤/搜索