分分鐘學會express

express快速入門

express介紹

express是基於Node.js平臺,快速、開放、極簡的 web 開發框架。
首先要個你們提供一些技術網站
http://expressjs.com/
http://www.expressjs.com.cn/
https://github.com/pugjs/pug
https://pug.bootcss.com/api/g...

安裝express

新建一個文件夾
mkdir myapp
cd myapp
經過 npm init 命令爲你的應用建立一個 package.json 文件
npm init
此命令將要求你輸入幾個參數,例如此應用的名稱和版本。
entry point: (index.js)
輸入 app.js 或者你所但願的名稱(建議用app.js),這是當前應用的入口文件。
安裝Express並將其保存到依賴列表中
npm install express --save
安裝成功

express打印Hello Wrold

效果以下

圖片描述

要想打印HelloWrold首先要引入這個模塊,而後實力化,接着定義方法,最後須要啓動任務
//引入模塊
const express = require("express");
//實例化
var app = express();
//定義方法
app.get('/', function (req, res) {
    res.send('Hello World!');
});

//啓動app
var server = app.listen(3000,function(){
    console.log("啓動成功!訪問http://localhost:3000");
})

express腳手架安裝

效果圖

圖片描述

按一個全局的express腳手架
npm install express-generator -g
在當前工做目錄下建立一個命名爲 myapp 的應用
express myapp
安裝全部依賴包
cd myapp
npm install
啓動這個應用
啓動這個應用(MacOS 或 Linux 平臺):
DEBUG=myapp npm start
Windows 平臺使用以下命令:
set DEBUG=myapp & npm start
在瀏覽器中打開 http://localhost:3000/ 網址就能夠看到這個應用了
接下來講一下這個應用的過程,仔細看圖就能懂

效果圖

圖片描述

他是在路由裏面返回一個index文件,這個index文件是views裏面的文件
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express1' });
});
下面是index.ejs文件,這個是views文件。我安裝的時候定義了一下要用ejs的,默認是jade文件
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
  </body>

express路由

每個路由均可以有一個或者多個處理器函數,當匹配到路由時,這個/些函數將被執行。
路由的定義由以下結構組成:app.METHOD(PATH, HANDLER)。其中,app 是一個 express 實例;METHOD 是某個 HTTP 請求方式中的一個;PATH 是服務器端的路徑;HANDLER 是當路由匹配到時須要執行的函數。
代碼展現了幾個路由實例
// 對網站首頁的訪問返回 "Hello World!" 字樣
app.get('/', function (req, res) {
  res.send('Hello World!');
});

// 網站首頁接受 POST 請求
app.post('/', function (req, res) {
  res.send('Got a POST request');
});

// /user 節點接受 PUT 請求
app.put('/user', function (req, res) {
  res.send('Got a PUT request at /user');
});

// /user 節點接受 DELETE 請求
app.delete('/user', function (req, res) {
  res.send('Got a DELETE request at /user');
});
我本身定義了一個新的路由(看懂圖就會作了)

效果

圖片描述

定義一個order.js的路由文件
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('order', { msg: '訂單首頁' });
});
//導出
module.exports = router;
須要在app.js中加入路由調用
var order = require('./routes/order');
app.use('/order', order);
須要新建一個order.els視圖頁面
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <title><%= msg %></title>
</head>
<body>
        <h1><%= msg %></h1>
        <p>這是我本身作的<%= msg %></p>
</body>
</html>

express靜態文件設置

靜態文件就是圖片,css,js等等這些寫死的文件
express中的靜態文件是在public中,是在app.js中定義的
app.use(express.static(path.join(__dirname, 'public')));

中間件

什麼是中間件
中間件(Middleware) 是一個函數,它能夠訪問請求對象(request object (req)), 響應對象(response object (res)), 和 web 應用中處於請求-響應循環流程中的中間件,通常被命名爲 next 的變量。
中間件的功能包括
執行任何代碼。
修改請求和響應對象。
終結請求-響應循環。
調用堆棧中的下一個中間件。
Express 應用可以使用以下幾種中間件
應用級中間件
路由級中間件
錯誤處理中間件
內置中間件
第三方中間件
說一下這幾種中間件的用法

應用級中間件

應用級中間件綁定到 app 對象 使用 app.use() 和 app.METHOD()
var app = express();

// 沒有掛載路徑的中間件,應用的每一個請求都會執行該中間件
app.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

路由中間件

路由級中間件和應用級中間件同樣,只是它綁定的對象爲 express.Router()路由上
var router = express.Router();

// 沒有掛載路徑的中間件,經過該路由的每一個請求都會執行該中間件
router.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

切記使用中間件根據須要,是否寫next();以下須要執行下面的代碼就必須寫,否者就掛起不執行下面代碼,這個next()是起掛起做用的

不一一介紹,這兩種是經常使用的,其餘的能夠去參考手冊

express進程管理器

用進程管理之前的效果

圖片描述

用進程管理後的效果

圖片描述

爲何須要用express進程管理器
由於每改一次代碼都要重啓服務,那麼用進程管理器就不準,改完代碼直接刷新瀏覽器看向就ok
我選用是一個叫PM2的進程管理器

安裝

npm install pm2 -g
啓動
pm2 start ./bin/www --watch
列出全部運行的進程
pm2 list
中止應用程式
pm2 stop 0
從新啓動應用程式
pm2 restart 0
要查看有關應用的詳細信息
pm2 show 0
要從pm2註冊表中刪除應用程序
pm2 delete 0
經常使用的也就是啓動和刪除應用程序

寫到這裏也要說再見了,一個簡單express的應用就完成了,你學會了嗎???

喜歡的點贊加收藏啊

相關文章
相關標籤/搜索