亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

Node.js Express安裝與使用教程

2024-05-06 16:44:14
字體:
來源:轉載
供稿:網友

之前我們在安裝完Node.js后直接寫了個HelloWorld網站,這次呢,我們使用Node.js的Web框架Express來重寫一下HelloWorld,看看有什么不同。同時我們還會重寫之前的文件服務器,功能更完善而代碼更簡潔。

安裝 express

為了重寫我們的HelloWorld,我們需要安裝Express模塊。Express基于Node.js的一個Web框架,官方網站在這里:http://expressjs.com/。官網對Express的介紹是:

Fast, unopinionated, minimalist web framework for Node.js

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

在使用npm安裝某個模塊時,它會自動解決依賴。

在命令行環境執行下面的命令來安裝express:

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

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

特別說明一下:

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

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

Node.js,Express,安裝

好啦,Express安裝完畢。

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

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

HelloWorld

代碼就是這么簡單:

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

保存為HelloExpress.js,然后在Node.js的命令行環境下執行“node HelloExpress.js”命令,網站就運行起來了。瀏覽器訪問一下,和上次的示例一樣一樣的。

使用Express有什么不同

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

// 引入http模塊var http = require("http"); // 創建server,指定處理客戶端請求的函數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模塊來創建HTTP服務器,指定了一個處理請求的函數。實際應用時,我們需要在這個函數內區分不同的HTTP請求,比如GET、HEAD、POST等。而Express版本的HelloWorld則有所不同,它可以針對每一個路徑和HTTP請求指定響應函數,比如Express版本的HelloWorld實例,只有你在瀏覽器中輸入“http://localhost:8000”時它才會返回“HelloWorld”,如果你在瀏覽器中輸入“http://localhost:8000/abc”,你就看到一條錯誤信息(會收到404狀態碼,express自動幫你處理了)。這里邊有一個URL路由(URL routing)的概念。假如把代碼修改成下面的樣子:

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

效果就和使用http模塊的版本類似了。因為我使用了“*”作為通配符,可以匹配任何路徑。Express的get方法原型如下:

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

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

使用express創建HelloExpress

express模塊有一個命令行工具express,可以用來生成基于express模塊的應用結構(網站結構)。

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

npm install -g express-generator

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

好了,現在我們使用express命令來創建一個默認的網站。

在命令行環境下導航到myprojects這個目錄下,執行下面的命令:

express HelloExpress

然后可以看到:

Node.js,Express,安裝

仔細看上面的圖哦,它告訴了我們三類非常重要的信息:

  1. express命令創建的網站的目錄結構以及創建的文件
  2. 安裝依賴(進入到HelloExpress下,執行npm install)
  3. 使用npm start啟動網站(express 4.x后)

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

{ "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" }}

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

在HelloExpress下執行“npm install”命令,npm會自動找到package.json,分析它,安裝所有依賴模塊。這要花費一些時間,休息一下,去喝杯茶。

看看,下面是安裝結果:

G:/nodejs/myprojects/HelloExpress>npm installdebug@2.2.0 node_modules/debug└── ms@0.7.1cookie-parser@1.3.5 node_modules/cookie-parser├── cookie-signature@1.0.6└── cookie@0.1.3serve-favicon@2.3.0 node_modules/serve-favicon├── fresh@0.3.0├── etag@1.7.0├── parseurl@1.3.0└── ms@0.7.1morgan@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-errors@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>

有興趣的可以研究下各個依賴模塊的信息,現在我們啟動網站了。執行 npm start 命令,很快就可以看到下面的圖:

Node.js,Express,安裝

看到上圖,說明網站已正常運行。你可以在瀏覽器里訪問http://localhost:3000,然后就可以看到這個頁面:

Node.js,Express,安裝

OK,大功告成。

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

Express版本的文件服務器

express是在Node.js的http的基礎上實現的,相比http模塊,封裝更多更適用于web服務器場景的功能。之前我們在Node.js開發入門——HTTP文件服務器里使用http模塊實現了一個簡單的文件服務器。那個版本的文件服務器還有一個缺陷,就是沒有根據文件名設置HTTP的Content-Type頭部。如果我們使用express來實現文件服務器(用到了Request對象的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);

是不是超級簡單?

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av手机在线观看| 国产精品va在线播放| 日韩极品精品视频免费观看| 日韩精品在线看| 97在线免费观看视频| 亚洲最大激情中文字幕| 91精品啪在线观看麻豆免费| 日日狠狠久久偷偷四色综合免费| 国产精品久久久久秋霞鲁丝| 日韩中文字幕免费视频| 亚洲第一页自拍| 欧美肥老妇视频| 国产噜噜噜噜噜久久久久久久久| 国产精品久久91| 中文字幕视频一区二区在线有码| 久久香蕉国产线看观看网| 日韩在线观看网址| 久久影院资源网| 久久久女人电视剧免费播放下载| 日韩中文字幕免费| 欧美成aaa人片免费看| 国产精品久久久久久搜索| 欧洲亚洲免费在线| 国产精品av网站| 国产精品美乳一区二区免费| 国产精品扒开腿爽爽爽视频| 夜夜躁日日躁狠狠久久88av| 最近中文字幕mv在线一区二区三区四区| 亚洲成色999久久网站| 高清在线视频日韩欧美| 亚洲黄色有码视频| 国产精品永久免费观看| 亚洲欧美激情精品一区二区| 久久艹在线视频| 色诱女教师一区二区三区| 欧美激情亚洲国产| 久久久亚洲天堂| 欧美精品videos另类日本| 国产亚洲精品一区二区| 亚洲理论电影网| 欧美激情国产日韩精品一区18| 欧美精品中文字幕一区| 久久亚洲精品小早川怜子66| 亚洲欧美日韩爽爽影院| 国产精品综合久久久| 色综合久综合久久综合久鬼88| 国产精品久久久av| 亚洲成人av片| 亚洲欧洲在线播放| 国产视频精品在线| 亚洲福利视频久久| 国产精品欧美激情在线播放| 国产激情久久久久| 久久久噜久噜久久综合| 国内免费精品永久在线视频| 国产91精品不卡视频| 国产成人97精品免费看片| 在线亚洲欧美视频| 欧美成年人网站| 欧美成人精品在线视频| 国产在线精品自拍| 国产欧美亚洲精品| 亚洲国模精品一区| 国外视频精品毛片| 日韩欧美国产黄色| 国内精品久久影院| 久热精品视频在线观看一区| 精品国产视频在线| 国产精品丝袜久久久久久高清| 尤物精品国产第一福利三区| 国产精品久久久久久久久免费看| 日av在线播放中文不卡| 久久99热这里只有精品国产| 国产成人精品日本亚洲专区61| 中文字幕日韩电影| 免费不卡欧美自拍视频| 久久久精品一区| 亚洲国模精品私拍| 正在播放欧美视频| 亚洲最大福利网| 日韩久久免费视频| 久久久国产视频| 色综合久综合久久综合久鬼88| 日韩美女视频在线观看| 中日韩美女免费视频网址在线观看| 色爱av美腿丝袜综合粉嫩av| 91视频免费在线| 国产亚洲aⅴaaaaaa毛片| 欧美老妇交乱视频| 美女啪啪无遮挡免费久久网站| 国产精品久久久久久亚洲调教| 成人免费福利在线| 自拍偷拍亚洲一区| 91精品啪在线观看麻豆免费| 亚洲深夜福利在线| 国产热re99久久6国产精品| 不卡av电影在线观看| 国产精品女人久久久久久| 欧美性xxxxhd| 亚洲成人激情在线| 7777精品久久久久久| 亚洲美女福利视频网站| 亚洲国产欧美一区二区三区同亚洲| 91在线免费网站| 日韩女在线观看| 久久久久久久久91| 国产98色在线| 国产精品久久久久91| 国产午夜精品免费一区二区三区| 亚洲另类欧美自拍| 国产97人人超碰caoprom| 亚洲激情第一页| 中文字幕日韩在线播放| 欧美极品少妇xxxxⅹ裸体艺术| 国产91精品久久久久久久| 亚洲肉体裸体xxxx137| 国产97在线亚洲| 亚洲精品视频免费| 日韩精品免费在线视频观看| 国产v综合v亚洲欧美久久| 精品久久久av| 亚洲欧洲中文天堂| 九色91av视频| 久久影院在线观看| 亚洲字幕在线观看| 日韩欧美大尺度| 久久久久久久影院| 欧美日韩一区二区在线播放| 日韩激情视频在线播放| 亚洲偷熟乱区亚洲香蕉av| 在线播放国产一区中文字幕剧情欧美| 国产精品亚洲自拍| 国产婷婷色综合av蜜臀av| 国产精品高精视频免费| 国产一区二区在线播放| 日韩专区在线播放| 日本中文字幕成人| 久久久亚洲成人| 欧美性猛交xxxx黑人猛交| 91精品国产91久久久久久吃药| 国产日韩欧美日韩大片| 欧美电影免费观看高清完整| 久久成人18免费网站| 91美女片黄在线观| 久久色在线播放| 97色在线视频观看| www国产精品视频| 超碰精品一区二区三区乱码| 98精品国产自产在线观看| 亚洲成年人在线| 色樱桃影院亚洲精品影院| 欧美wwwxxxx| 国产自摸综合网| 欧美性黄网官网| 日韩va亚洲va欧洲va国产| 国产99久久久欧美黑人| 日韩有码片在线观看| 成人免费网站在线观看| 亚洲新声在线观看| 国产在线一区二区三区| 亚洲深夜福利在线| 国产精品久久久久久亚洲调教| 日韩视频永久免费观看| 欧美日韩午夜激情|