欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何使用node.js的開(kāi)發(fā)框架express創(chuàng)建一個(gè)web應(yīng)用

 更新時(shí)間:2018年12月20日 15:03:16   作者:木人子韋一日塵  
這篇文章主要介紹了詳解如何使用node.js的開(kāi)發(fā)框架express創(chuàng)建一個(gè)web應(yīng)用,網(wǎng)上各種搜索后,整理了下快速搭建express框架的步驟。非常具有實(shí)用價(jià)值,需要的朋友可以參考下

搭建環(huán)境

1.安裝Express

按鍵:Windows+R=>輸入cmd,打開(kāi)命令行,輸入

npm install -g express@3

我們需要用全局模式安裝Express,因?yàn)橹挥羞@樣,我們才能在命令行中使用它

注意:這里我只選用Express 3.x版本,要是你對(duì)Express3x版本熟悉了的話,你只需看一下Migrating from 3.x to 4.x 的文檔即可過(guò)渡到Express 4.x

2.新建一個(gè)工程

繼續(xù)打開(kāi)命令行,輸入

express -e murenziwei

注意:Express 3.x中使用ejs時(shí)不再是-t ejs,而是-e,可以輸入express -h查看

繼續(xù)輸入:(路徑切換到文件夾murenziwei)

cd murenziwei

繼續(xù)輸入:(安裝所需模塊)

npm install

如圖所示

安裝成功后輸入:

node app

在瀏覽器上訪問(wèn)ocalhost:3000,如圖以下:

3.項(xiàng)目結(jié)構(gòu)

我們回頭看看生成的項(xiàng)目目錄里面都有什么,打開(kāi)我們的murenziwei文件夾,如圖

  • node_modules:存放package.json中安裝的模塊,當(dāng)你在package.json中添加依賴的模塊并安裝后,該模塊會(huì)存放在這個(gè)文件夾
  • public:存放圖片/樣式/腳本等文件
  • routes:存放路由文件
  • views:存放視圖文件,或者說(shuō)是模板文件
  • app.js:?jiǎn)?dòng)文件,或者說(shuō)入口文件
  • package.json:存儲(chǔ)項(xiàng)目的信息及模塊依賴,當(dāng)在dependencies中添加依賴的模塊時(shí),運(yùn)行npm install,npm會(huì)檢查當(dāng)前目錄下的package.json,并自動(dòng)安裝所有指定的模塊
  • package-lock.json:記錄整個(gè)node_modules文件夾的樹(shù)狀結(jié)構(gòu),加快安裝模塊的速度

讓我們來(lái)看一看,打開(kāi)app.js,究竟是什么代碼組成?

/*

 Module dependencies.

 */

var express = require('express');

var routes = require('./routes');

var user = require('./routes/user');

var http = require('http');

var path = require('path');

var app = express();


// all environments

app.set('port', process.env.PORT || 3000);

app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'ejs');

app.use(express.favicon());

app.use(express.logger('dev'));

app.use(express.json());

app.use(express.urlencoded());

app.use(express.methodOverride());

app.use(app.router);

app.use(express.static(path.join(__dirname, 'public')));
 

// development only

if ('development' == app.get('env')) {

 app.use(express.errorHandler());

}


app.get('/', routes.index);

app.get('/users', user.list);

 

http.createServer(app).listen(app.get('port'), function(){

 console.log('Express server listening on port ' + app.get('port'));

});  

這里我們通過(guò)require()加載了express,http,path模塊,還有routes文件夾下的index.js和user.js

1.app.set('port', process.env.PORT || 3000):設(shè)置端口為process.env.PORT或者3000;

2.app.set('views', path.join(__dirname, 'views')):設(shè)置views文件夾為存放視圖文件的目錄,即存放模板文件的地方,__dirname為全局變量,存儲(chǔ)當(dāng)前正在執(zhí)行的js所在的目錄;

3.app.set('view engine','ejs'):設(shè)置視圖模塊引擎為ejs

4.app.use(express.favicon()):connect內(nèi)建的中間件,使用默認(rèn)的favicon圖標(biāo),如果想使用自己的圖標(biāo),需改為app.use(express.favicon(__dirname+"/public/images/favicon.ico")),這里我們把自定義的favicon.icon放到/public/images文件夾下

5.app.use(express.logger('dev')):connect內(nèi)建的中間件,在開(kāi)發(fā)環(huán)境下使用,在終端顯示簡(jiǎn)單的日志,例如在啟動(dòng)app.js后訪問(wèn)localhost:3000,終端會(huì)輸出:

如果沒(méi)有這一行代碼,不管你怎么刷新頁(yè)面,終端都只有一行Express sever listening on port 3000

6.app.use(express.json());

app.use(urlencoded());

用來(lái)解析請(qǐng)求體,支持application/json,application/x-www-form-urlencoded

7.app.use(express.methodOverride()):connect內(nèi)建的中間件,可以協(xié)助處理POST請(qǐng)求,偽裝成 PUT,DELETE和其它HTTP方法

8.app.use(app.router):調(diào)用路由解析的規(guī)則

9.app.use(express.static(path.join(__dirname, 'public'))):connect內(nèi)創(chuàng)建的中間件,將根目錄下的public文件夾設(shè)置為存放images,css,js等靜態(tài)文件的目錄

if ('development' == app.get('env')) {
 app.use(express.errorHandler());
}

此段代碼可理解為:配置開(kāi)發(fā)環(huán)境下的錯(cuò)誤處理,輸出錯(cuò)誤信息

10.app.get('/', routes.index):路由控制器,如果用戶訪問(wèn)/(主頁(yè)),則由routes.index來(lái)處理,routes/index.js的內(nèi)容如下:

exports.index = function(req, res){
 res.render('index', { title: 'Express' });
};

通過(guò)exports.index導(dǎo)出index函數(shù)接口,app.get('/',routes.index)相當(dāng)于:

app.get("/",function(res,rep){

res.render("index",{title:"Express"});

})

解釋一下上行的res.render("index",{title:"Express"}):使用ejs模板引擎解析views/index.ejs(因?yàn)槲覀冎巴ㄟ^(guò)app.set("views",__dirname+"/views")設(shè)置了模板文件默認(rèn)存儲(chǔ)在views文件夾下),并傳入一個(gè)對(duì)象,這個(gè)對(duì)象只有一個(gè)title屬新,它的值為字符串Express,即用字符串Express替換views/index.ejs中所有的title變量,這就是我們所說(shuō)的渲染視圖,或者說(shuō)渲染模板。

11.

http.createServer(app).listen(app.get('port'), function(){
 console.log('Express server listening on port ' + app.get('port'));
});

這段代碼可以這樣理解:創(chuàng)建http服務(wù)器并監(jiān)聽(tīng)3000端口,創(chuàng)建成功后,終端顯示如下

然后我們就可以在瀏覽器中訪問(wèn)localhost:3000了

最后總結(jié)一下我所講的知識(shí)點(diǎn):如何創(chuàng)建一個(gè)node項(xiàng)目并啟動(dòng)它,了解了項(xiàng)目的大體結(jié)構(gòu)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 通過(guò)Nodejs搭建網(wǎng)站簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄流程

    通過(guò)Nodejs搭建網(wǎng)站簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄流程

    這篇文章主要介紹了通過(guò)Nodejs搭建網(wǎng)站簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄流程,Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。 Node.js 使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式 I/O 的模型,使其輕量又高效。,需要的朋友可以參考下
    2019-06-06
  • 我的Node.js學(xué)習(xí)之路(二)NPM模塊管理

    我的Node.js學(xué)習(xí)之路(二)NPM模塊管理

    npm 是 Node.js 的模塊依賴管理工具。作為開(kāi)發(fā)者使用的工具,主要解決開(kāi)發(fā) Node.js 時(shí)會(huì)遇到的問(wèn)題。如同 RubyGems 對(duì)于 Ruby 開(kāi)發(fā)者和 Maven 對(duì)于 Java 開(kāi)發(fā)者的重要性,npm 對(duì)與 Node.js 的開(kāi)發(fā)者和社區(qū)的重要性不言而喻。
    2014-07-07
  • NodeJS和瀏覽器中this關(guān)鍵字的不同之處

    NodeJS和瀏覽器中this關(guān)鍵字的不同之處

    這篇文章主要給大家介紹了關(guān)于NodeJS和瀏覽器中this關(guān)鍵字不同的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用express獲取微信小程序二維碼小記

    使用express獲取微信小程序二維碼小記

    這篇文章主要介紹了使用express獲取微信小程序二維碼小記,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • Node.js自動(dòng)生成API文檔的實(shí)現(xiàn)

    Node.js自動(dòng)生成API文檔的實(shí)現(xiàn)

    本文主要介紹了Node.js自動(dòng)生成API文檔,包含基于swagger-jsdoc+swagger-ui-express快速實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Windows下快速搭建NodeJS本地服務(wù)器的步驟

    Windows下快速搭建NodeJS本地服務(wù)器的步驟

    本篇文章主要介紹了Windows下快速搭建NodeJS本地服務(wù)器的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • benny簡(jiǎn)單框架benchmark功能使用

    benny簡(jiǎn)單框架benchmark功能使用

    這篇文章主要為大家介紹了benny簡(jiǎn)單框架benchmark功能使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 深入探究node之Transform

    深入探究node之Transform

    這篇文章主要介紹了深入探究node之Transform,本文深入內(nèi)部闡述Transform的運(yùn)行機(jī)理及使用技巧,有興趣的可以了解一下
    2017-07-07
  • 淺析node.js中close事件

    淺析node.js中close事件

    本文簡(jiǎn)單介紹了http.ServerRespose對(duì)象的close事件,并給出了相關(guān)實(shí)例,推薦給需要的小伙伴參考下吧。
    2014-11-11

最新評(píng)論