• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    Node.js Express安裝與使用教程

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:15:00
    文檔

    Node.js Express安裝與使用教程

    Node.js Express安裝與使用教程:之前我們?cè)诎惭b完Node.js后直接寫了個(gè)HelloWorld網(wǎng)站,這次呢,我們使用Node.js的Web框架Express來重寫一下HelloWorld,看看有什么不同。同時(shí)我們還會(huì)重寫之前的文件服務(wù)器,功能更完善而代碼更簡(jiǎn)潔。 安裝 express 為了重寫我們的HelloWorl
    推薦度:
    導(dǎo)讀Node.js Express安裝與使用教程:之前我們?cè)诎惭b完Node.js后直接寫了個(gè)HelloWorld網(wǎng)站,這次呢,我們使用Node.js的Web框架Express來重寫一下HelloWorld,看看有什么不同。同時(shí)我們還會(huì)重寫之前的文件服務(wù)器,功能更完善而代碼更簡(jiǎn)潔。 安裝 express 為了重寫我們的HelloWorl

    Express很輕巧,通常用來做Web后端的開發(fā)。有一些推薦的書,可以看這里://www.gxlcms.com/books/470249.html。

    要安裝express模塊,直接使用npm命令即可。在命令行環(huán)境下不帶參數(shù)執(zhí)行npm命令,即可看到npm的幫助信息。安裝某個(gè)Node.js模塊,使用install子命令。“npm install xxx”會(huì)將xxx模塊安裝到當(dāng)前路徑下,“npm install -g xxx”則將xxx模塊安裝到當(dāng)前用戶的全局位置。使用“npm helo install”可以查看install子命令的細(xì)節(jié)。要卸載一個(gè)模塊,使用“npm uninstall xxx”,假如你是全局安裝,則使用“npm uninstall -g xxx”。

    在使用npm安裝某個(gè)模塊時(shí),它會(huì)自動(dòng)解決依賴。

    在命令行環(huán)境執(zhí)行下面的命令來安裝express:

    npm install -g express –registry=https://registry.npm.taobao.org

    注意,我指定了使用淘寶的鏡像,快一些。

    特別說明一下:

    我參考了這里的教程哦:https://github.com/alsotang/node-lessons

    很快啦,你就可以看到下面的界面(注意我們安裝的Express版本是4.13.3):

    好啦,Express安裝完畢。

    需要說明的是,使用-g命令全局安裝Node.js模塊后,需要設(shè)置環(huán)境變量NODE_PATH,否則在我們使用node命令啟動(dòng)某個(gè)應(yīng)用時(shí)可能會(huì)報(bào)找不到指定的模塊這種錯(cuò)誤。在我的Windows 7環(huán)境下,全局安裝時(shí)npm模塊的位置為“C:\Users\Administrator\AppData\Roaming\npm\node_modules”(看上面的圖可知)。至于環(huán)境變量的設(shè)置,計(jì)算機(jī)->高級(jí)系統(tǒng)設(shè)置->高級(jí)->環(huán)境變量,添加一個(gè)名為NODE_PATH的環(huán)境變量, 將其值設(shè)置為全局模塊的根目錄。設(shè)置完成后,重新進(jìn)入命令行環(huán)境即可生效。

    提一下,如果要在NODE_PATH中添加多個(gè)模塊路徑,只需用“;”分隔開即可。具體含義,命令行下執(zhí)行“node -h”可查看幫助。

    HelloWorld

    代碼就是這么簡(jiǎn)單:

    // 引入 express 模塊
    var express = require('express');
    
    // 創(chuàng)建 express 實(shí)例
    var app = express();
    
    // 響應(yīng)HTTP的GET方法
    app.get('/', function (req, res) {
     res.send('Hello World!');
    });
    
    // 監(jiān)聽到8000端口
    app.listen(8000, function () {
     console.log('Hello World is listening at port 8000');
    });

    保存為HelloExpress.js,然后在Node.js的命令行環(huán)境下執(zhí)行“node HelloExpress.js”命令,網(wǎng)站就運(yùn)行起來了。瀏覽器訪問一下,和上次的示例一樣一樣的。

    使用Express有什么不同

    沒有使用Express的代碼是醬紫的:

    // 引入http模塊
    var http = require("http"); 
    
    // 創(chuàng)建server,指定處理客戶端請(qǐng)求的函數(shù)
    http.createServer(
     function(request, response) { 
     response.writeHead(200, {"Content-Type": "text/plain"}); 
     response.write("Hello World!"); 
     response.end(); 
     }
    ).listen(8000); 
    
    console.log("Hello World is listening at port 8000");

    上面的代碼直接使用Node.js帶的http模塊來創(chuàng)建HTTP服務(wù)器,指定了一個(gè)處理請(qǐng)求的函數(shù)。實(shí)際應(yīng)用時(shí),我們需要在這個(gè)函數(shù)內(nèi)區(qū)分不同的HTTP請(qǐng)求,比如GET、HEAD、POST等。而Express版本的HelloWorld則有所不同,它可以針對(duì)每一個(gè)路徑和HTTP請(qǐng)求指定響應(yīng)函數(shù),比如Express版本的HelloWorld實(shí)例,只有你在瀏覽器中輸入“http://localhost:8000”時(shí)它才會(huì)返回“HelloWorld”,如果你在瀏覽器中輸入“http://localhost:8000/abc”,你就看到一條錯(cuò)誤信息(會(huì)收到404狀態(tài)碼,express自動(dòng)幫你處理了)。這里邊有一個(gè)URL路由(URL routing)的概念。假如把代碼修改成下面的樣子:

    app.get('*', function (req, res) {
     res.send('Hello World!');
    });

    效果就和使用http模塊的版本類似了。因?yàn)槲沂褂昧恕?”作為通配符,可以匹配任何路徑。Express的get方法原型如下:

    app.METHOD(path, callback [, callback …])

    具體可以參考這里:http://expressjs.com/4x/api.html#app.METHOD。

    使用express創(chuàng)建HelloExpress

    express模塊有一個(gè)命令行工具express,可以用來生成基于express模塊的應(yīng)用結(jié)構(gòu)(網(wǎng)站結(jié)構(gòu))。

    express 4.x之后,express命令被獨(dú)立出來放在了express-generator模塊中。我們用下面的命令全局安裝express這個(gè)命令行工具:

    npm install -g express-generator

    安裝完成后,在命令行環(huán)境下執(zhí)行“express -V”,可以看到express的版本是4.13.1。

    好了,現(xiàn)在我們使用express命令來創(chuàng)建一個(gè)默認(rèn)的網(wǎng)站。

    在命令行環(huán)境下導(dǎo)航到myprojects這個(gè)目錄下,執(zhí)行下面的命令:

    express HelloExpress

    然后可以看到:

    仔細(xì)看上面的圖哦,它告訴了我們?nèi)惙浅V匾男畔ⅲ?/p>

    1. express命令創(chuàng)建的網(wǎng)站的目錄結(jié)構(gòu)以及創(chuàng)建的文件
    2. 安裝依賴(進(jìn)入到HelloExpress下,執(zhí)行npm install)
    3. 使用npm start啟動(dòng)網(wǎng)站(express 4.x后)

    好啦,我們先安裝依賴。這里要先提一下HelloExpress目錄下的package.json文件,其內(nèi)容如下:

    {
     "name": "HelloExpress",
     "version": "0.0.0",
     "private": true,
     "scripts": {
     "start": "node ./bin/www"
     },
     "dependencies": {
     "body-parser": "~1.13.2",
     "cookie-parser": "~1.3.5",
     "debug": "~2.2.0",
     "express": "~4.13.1",
     "jade": "~1.11.0",
     "morgan": "~1.6.1",
     "serve-favicon": "~2.3.0"
     }
    }

    這個(gè)文件定義了一個(gè)Node.js應(yīng)用的基本信息,我們這次注意的是 dependencies ,它定義了應(yīng)用依賴的模塊。

    在HelloExpress下執(zhí)行“npm install”命令,npm會(huì)自動(dòng)找到package.json,分析它,安裝所有依賴模塊。這要花費(fèi)一些時(shí)間,休息一下,去喝杯茶。

    看看,下面是安裝結(jié)果:

    G:\nodejs\myprojects\HelloExpress>npm install
    debug@2.2.0 node_modules\debug
    └── ms@0.7.1
    
    cookie-parser@1.3.5 node_modules\cookie-parser
    ├── cookie-signature@1.0.6
    └── cookie@0.1.3
    
    serve-favicon@2.3.0 node_modules\serve-favicon
    ├── fresh@0.3.0
    ├── etag@1.7.0
    ├── parseurl@1.3.0
    └── ms@0.7.1
    
    morgan@1.6.1 node_modules\morgan
    ├── basic-auth@1.0.3
    ├── on-headers@1.0.0
    ├── depd@1.0.1
    └── on-finished@2.3.0 (ee-first@1.1.1)
    
    body-parser@1.13.3 node_modules\body-parser
    ├── content-type@1.0.1
    ├── bytes@2.1.0
    ├── depd@1.0.1
    ├── on-finished@2.3.0 (ee-first@1.1.1)
    ├── qs@4.0.0
    ├── iconv-lite@0.4.11
    ├── http-errors@1.3.1 (inherits@2.0.1, statuses@1.2.1)
    ├── raw-body@2.1.2 (unpipe@1.0.0)
    └── type-is@1.6.6 (media-typer@0.3.0, mime-types@2.1.4)
    
    express@4.13.3 node_modules\express
    ├── escape-html@1.0.2
    ├── merge-descriptors@1.0.0
    ├── array-flatten@1.1.1
    ├── cookie@0.1.3
    ├── cookie-signature@1.0.6
    ├── methods@1.1.1
    ├── utils-merge@1.0.0
    ├── range-parser@1.0.2
    ├── fresh@0.3.0
    ├── path-to-regexp@0.1.7
    ├── vary@1.0.1
    ├── content-type@1.0.1
    ├── etag@1.7.0
    ├── parseurl@1.3.0
    ├── content-disposition@0.5.0
    ├── serve-static@1.10.0
    ├── depd@1.0.1
    ├── qs@4.0.0
    ├── finalhandler@0.4.0 (unpipe@1.0.0)
    ├── on-finished@2.3.0 (ee-first@1.1.1)
    ├── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-er
    rors@1.3.1)
    ├── accepts@1.2.12 (negotiator@0.5.3, mime-types@2.1.4)
    ├── type-is@1.6.6 (media-typer@0.3.0, mime-types@2.1.4)
    └── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1)
    
    jade@1.11.0 node_modules\jade
    ├── character-parser@1.2.1
    ├── void-elements@2.0.1
    ├── commander@2.6.0
    ├── constantinople@3.0.2 (acorn@2.1.0)
    ├── mkdirp@0.5.1 (minimist@0.0.8)
    ├── clean-css@3.3.7 (commander@2.8.1, source-map@0.4.4)
    ├── uglify-js@2.4.24 (uglify-to-browserify@1.0.2, async@0.2.10, source-map@0.
    1.34, yargs@3.5.4)
    ├── with@4.0.3 (acorn@1.2.2, acorn-globals@1.0.5)
    ├── transformers@2.1.0 (css@1.0.8, uglify-js@2.2.5, promise@2.0.0)
    └── jstransformer@0.0.2 (is-promise@2.0.0, promise@6.1.0)
    
    G:\nodejs\myprojects\HelloExpress>

    有興趣的可以研究下各個(gè)依賴模塊的信息,現(xiàn)在我們啟動(dòng)網(wǎng)站了。執(zhí)行 npm start 命令,很快就可以看到下面的圖:

    看到上圖,說明網(wǎng)站已正常運(yùn)行。你可以在瀏覽器里訪問http://localhost:3000,然后就可以看到這個(gè)頁(yè)面:

    OK,大功告成。

    這個(gè)由express generator創(chuàng)建的HelloExpress和我們基于express手動(dòng)寫的HelloWorld又有一些不同,比如你在瀏覽器地址欄里輸入http://localhost:3000/abc,就會(huì)看到一個(gè)默認(rèn)的404頁(yè)面,顯示了具體的錯(cuò)誤信息。而我們的HelloWorld,顯示的則是“Cannot GET /abc”這個(gè)文本串。這就是模板的便利之處,有很多默認(rèn)處理,可以為我們省很多麻煩。

    Express版本的文件服務(wù)器

    express是在Node.js的http的基礎(chǔ)上實(shí)現(xiàn)的,相比http模塊,封裝更多更適用于web服務(wù)器場(chǎng)景的功能。之前我們?cè)贜ode.js開發(fā)入門——HTTP文件服務(wù)器里使用http模塊實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的文件服務(wù)器。那個(gè)版本的文件服務(wù)器還有一個(gè)缺陷,就是沒有根據(jù)文件名設(shè)置HTTP的Content-Type頭部。如果我們使用express來實(shí)現(xiàn)文件服務(wù)器(用到了Request對(duì)象的sendFile方法),哈哈,就只有幾行代碼,還解決了Content-Type問題!

    代碼如下:

    var express = require('express');
    var app = express();
    
    app.get('*', function(req, res){
     res.sendFile(req.path, {root: __dirname+'/', dotfiles: 'deny'});
    });
    
    app.listen(3000);

    是不是超級(jí)簡(jiǎn)單?

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Node.js Express安裝與使用教程

    Node.js Express安裝與使用教程:之前我們?cè)诎惭b完Node.js后直接寫了個(gè)HelloWorld網(wǎng)站,這次呢,我們使用Node.js的Web框架Express來重寫一下HelloWorld,看看有什么不同。同時(shí)我們還會(huì)重寫之前的文件服務(wù)器,功能更完善而代碼更簡(jiǎn)潔。 安裝 express 為了重寫我們的HelloWorl
    推薦度:
    標(biāo)簽: 使用 安裝 教程
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久亚洲日韩精品一区二区三区| 亚洲精品乱码久久久久久| 国产亚洲精品成人a v小说| 亚洲av日韩av天堂影片精品| 一区二区三区精品| 精品国产午夜理论片不卡| 久久精品国产黑森林| 久久精品国产一区二区三区日韩| 日韩精品人妻系列无码专区| 精品午夜福利1000在线观看| 精品久久一区二区| 久久国产精品无码HDAV| 久久国产精品偷99| 91精品国产自产在线老师啪| 成人国产精品秘 果冻传媒在线 | 亚洲精品无码专区久久同性男| 四虎成人欧美精品在永久在线| 久久精品国产第一区二区三区| 亚洲国产一成久久精品国产成人综合| 99久久久国产精品免费无卡顿| 久久久国产精品| 国产亚洲精品观看91在线| 国产精品第一页在线| 91精品国产91久久综合| 亚洲AV永久无码精品成人| 四虎成人精品| 精品久久综合1区2区3区激情| 亚洲国产精品热久久| 国产日产韩国精品视频| 四虎国产精品永久在线观看 | 少妇人妻无码精品视频| 亚洲人精品午夜射精日韩 | 伊人久久大香线蕉精品| 51视频国产精品一区二区| 久久精品亚洲中文字幕无码麻豆| 无码欧精品亚洲日韩一区夜夜嗨| 亚洲线精品一区二区三区影音先锋 | 精品少妇人妻av无码久久| 综合国产精品第一页| 亚洲国产成人精品女人久久久 | 无码人妻精品一区二区三区久久|