<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      Express4 啟航指南

      2014-09-24 21:00  聶微東  閱讀(32867)  評論(15)    收藏  舉報

         確實有感而發,Nodejs真的發展太快了,這么說的原因有兩點:自己去年冬天買了本《了不起的Node.js》,里面介紹Express的版本還是2.x.x;前些天小伙伴買了本《Node.js實戰》,結果依賴的Express是3.x.x。尼瑪如果安裝目前新版的Express4,那么這些書中的例子連項目都無法正常跑起來。

        Nodejs相關的紙版書一上市就已經過時了!

        

       

        此文的背景是由于俺某天手欠,升級了最新Express V4+后,發現項目不可用了(還好是公司內部的小工具),查找資料后整理了些許總結,介紹如何使用Express4搭建項目。 

        情況差不多就是這樣,那么咱們"深入淺出"一把Express項目吧。

       

        

       

        如果看官想了解Express 4之前的安裝、使用可查看:http://www.rzrgm.cn/Darren_code/p/node_express.html

       

      --------------------------- 分割線 ---------------------------

       

      目錄

      1. 建立工程環境
      2. npm安裝細節
      3. 全局模式安裝的意義
      4. 創建項目
      5. 目錄結構

       

      建立工程環境

        先介紹下各種環境吧:

         

       

        進入俺們的項目所在目錄:

        cd /home/work/node/project

       

        npm安裝express , -g 指令讓express進入全局安裝:

        $ npm install -g express

       

        如果是express 4.0之前版本,那么執行“express -V”就可以得到版本號了,可express 4.0之后還需要再安裝express-generator包,如果沒有安裝還執行“express -V”命令會報錯。

       

        執行安裝express-generator包:

        $ npm install -g express-generator

       

        現在執行“$ express -V”可查看express版本信息了。

        

       

        發生這種情況的原因是,express4.0之后把創建一個APP的功能分離出來為express-generator,沒它你創建不了應用程序。

       

       

      NPM和模塊

        以下兩張express目錄(安裝samba,Windows下查看無壓力)的圖片可以更直觀的對比express包的變化,下圖左側是V3.15.0,下圖右側是V4.7.0:

         

       

        目錄結構上看就缺少一個bin文件,這個bin目錄內存放的就是內部命令(下圖),只不過它們都是以獨立的文件形式存在的。

        PS:bin是binary的縮寫,有關bin和sbin目錄的含義需要看官對linux的目錄結構有一點點了解,使用Google 百度一下"linux 目錄"即可找到對應資料。

        

       

        再從模塊信息(node_modules/express/package.json)看它們的重要不同:

        "bin": {
             "express": "./bin/express"
        }

       

        需要注意npm模塊中的信息都在package.json里面,包括各種配置信息。

        其中"bin"這個key就是申明用戶可以使用“command-name”這個命令,而輸入該命令后就會去執行“command-file”這個文件。如下:

        {
             ...
             "bin": {
                  "command-name” : “command-file”
             }
             ...
        }

       

        所以在命令行輸入express命令時,其實對應的其實是去執行bin目錄下的express程序。

        如果自己要制作模塊包,且希望可以命令行工具使用時,需要配置好bin字段,當全局模式安裝之后就可以在命令行直接執行使用。有關package.json的信息會再配置章節中再詳細介紹,"$ npm help json"可以獲取官方的詳細信息。

       


      全局模式安裝的意義

        npm安裝的時候區分本地模式安裝和全局模式安裝,“-g”就表示全局模式安裝,這種模式會被安裝在node安裝目錄的lib所在目錄的node_modules文件夾中,全局使用。

       

        NPM是由Isaac Z.Schlueter創建的,提供給Node服務的Node包管理器,最開始需要獨立安裝,后來當Nodev0.6.3版本默認集成了NPM作為Node包管理器,所以在那之后,只要使用NPM安裝的全局包地址,都可以推算出來。

        如Node在/usr/local/bin/node,那么模塊目錄就是/usr/local/lib/node_modules/下。

        非全局那么就是本地模式安裝,這類模式安裝會被安裝在當前目錄的node_modules文件夾中,非全局使用。

       

        如果express-generator不是全局模式安裝怎么辦?

        非常不爽的就是命令行工具中直接使用"express [option] [dir]"就沒法完成了,只能手動的找到執行文件執行才可以,如本地模式安裝的時只能只能在當前目錄下執行

        $ ./node_modules/express-generator/bin/express -V
        4.2.0

       

      創建項目

        東扯西扯完畢,各方面也已經Ready,創建個Express項目開心一下:)

        再確認一下所在的目錄位置

        

       

        express myapp

        

        $ cd myapp && npm install

       

        npm install完成之后就可以run起來咯,執行:

        $ DEBUG=myapp ./bin/www

       

        執行“npm start”其效果一樣,下圖分別是這兩條語句執行情況:

        

        

        PS:紅框中的內容是訪問時打印的信息。

         

        可以看到倆條命令打印出來的信息有一行不一樣,執行完“DEBUG=myapp ./bin/www”后會打印出:“myapp Express server listening on port 8898 +0ms”

       

        讓俺們來看看為神馬,執行命令:

        $ vi ./bin/www

        

        PS:默認PORT其實3000(紅框中的部分),俺手動修改后使用的是8898端口

       

        Express4中引入了著名的debug模塊,所以debug模式讓我們更方便的玩轉Node中的模塊,其使用方法介紹起來較長,建議大家看看其官方的介紹:https://www.npmjs.org/package/debug

       

        重要的package.json文件馬上會介紹,創建Express4項目俺們就說到這里。

       

      目錄結構

         了解目錄結構是玩轉一切項目的第一步:

        

      • app.js,程序啟動文件
      • bin,創建項目時已經提到,是真實的執行程序
      • node_modules, 存放所有的項目依賴庫
      • package.json,項目依賴配置及開發者信息
      • public,靜態文件(css,js,img)
      • routes,路由文件
      • views,頁面文件

       

      配置文件之神奇的package.json

        在Nodejs項目中,package.json文件用來聲明項目基本信息和使用的模塊,這樣在新的環境部署時,只要在package.json文件所在的目錄執行npm install命令即可按照所需要的模塊啦。

        下面俺們通過這個package.json文件再Build Express項目玩玩(生命不息折騰不止嘛)。

       

        回到project目錄:

        

        在project目錄下新加testpackage項目

        $ mkdir testpackage && cd testpackage

        

        把myapp中的package.json copy過來

        $ cp ../myapp/package.json ./

        

        創建個server.js,寫入簡單的幾行代碼,運行一把:

        var express =  require('express');                                                                      
        var app = express();                                                                                  
        app.get('/', function(req, res){                                                                      
            res.send('Hello World');                                                                          
        });                                                                                                   
        var server = app.listen(8808, function() {                                                            
            console.log('Listening on port %d', server.address().port);                                       
        }); 
        app.get('/sayhi', function(req, res){                                                                                                                                       
           res.send('狗狗 黑喂狗');                                                                          
        }); 
      

       

         

        上面倆圖就是運行結果。

       

        查看package.json中的內容如下

        

        會議下由package.json實現的快速項目搭建,俺們再來了解其內容意義:

      • name
        ~ 在package.json中最重要的就是name和version字段。他們都是必須的,如果沒有就無法install;
        ~ 想好名字之前先去npm registry查看一下這個名字是否已經被使用了,http://registry.npmjs.org/
      • version
        ~ version必須能被 node-semver解析,它被包在npm的依賴中;
        ~ name和version一起組成的標識在假設中是唯一的。改變包應該同時改變version
      • private
        ~ 如果你設置"private": true,npm就不會發布它;
        ~ 這是一個防止意外發布私有庫的方式。如果你要確定給定的包是只發布在特定registry(如內部registry)的,用publishConfighash的描述來重寫registry的publish-time配置參數
      • scripts
        ~ “scripts”是一個由腳本命令組成的hash對象,他們在包不同的生命周期中被執行。key是生命周期事件,value是要運行的命令。
      • dependencies
        ~ 依賴是給一組包名指定版本范圍的一個hash。這個版本范圍是一個由一個或多個空格分隔的字符串。依賴還可以用tarball或者git URL

        以上五項僅僅是Express4 package.json使用的,其他細節可參考文檔 傳送門https://www.npmjs.org/doc/files/package.json.html

       

      小結一下

        文章在偏應用的層面上介紹了NPM和模塊信息,希望能對大家了解有所幫忙吧。

        8月份的文章補上,俺們下一章再來介紹用Express+mongodb搭建個人網站,保佑老子千萬別跳票了...吼吼:)

        

       

        資料

       

       

       

      主站蜘蛛池模板: 亚洲无线码一区二区三区| 国产av一区二区三区| 国产婷婷综合在线视频中文| 国产一区二区三区四区五区加勒比| 最新日韩精品视频在线| 久久国产乱子伦免费精品无码| 亚洲男人电影天堂无码| 成人做爰www网站视频| 最新国产精品中文字幕| 国产老熟女视频一区二区| 日韩有码中文在线观看| 日韩精品成人区中文字幕| 国产精品中文字幕日韩| 在线视频精品中文无码| 国产在线亚州精品内射| 国语精品自产拍在线观看网站| 最近中文字幕日韩有码| 欧美高清freexxxx性| 国产极品嫩模在线观看91| 伊人精品成人久久综合97| 4399理论片午午伦夜理片| 国产黄色精品一区二区三区| 无码激情亚洲一区| 国内熟妇人妻色在线三级| 色欲狠狠躁天天躁无码中文字幕 | 无码国模国产在线观看免费| 久热视频这里只有精品6| 亚洲精品美女久久久久9999| 国精品91人妻无码一区二区三区| 丰满少妇高潮在线播放不卡| 自拍偷拍一区二区三区四| 99RE8这里有精品热视频| 国产成人午夜福利在线观看| 国产性生大片免费观看性| 午夜在线不卡| 国产综合视频一区二区三区| 最新亚洲av日韩av二区| 青青草国产精品日韩欧美| 国产精品一区高清在线观看| 中文字幕第一页国产| 美女禁区a级全片免费观看|