express入門學習(一)

来源:http://www.cnblogs.com/createGod/archive/2017/05/16/6864342.html
-Advertisement-
Play Games

一、安裝express cnpm || npm install express --save ; 1. Hello World 2.express路由 3.靜態資源 app.user(express.statice('public')); 二、express的中間件 1.應用級中間件 2.路由級中間 ...


一、安裝express

cnpm || npm  install express --save ;

1. Hello  World

var express = require('express');

var app = express();

app.get('/',function(req,res){
    res.send('hello world');
});

var server = app.listen('3000',function(){
    var host = server.address().address;
    var port = server.address().port;

    console.log('server start localhost',host,port);
})

2.express路由

var express = require('express');

var app = express();

//http://localhost:3000/
app.get('/',function(req,res){
    res.send('hello world');
});
//http://localhost:3000/user.html
app.get('/user.html',function(req,res){
    res.sendFile(__dirname + '/' + 'user.html');
});
//http://localhost:3000/index.html
app.get('/index.html',function(req,res){
    res.sendFile(__dirname + '/' + 'index.html')
});
/*
 *其實每個路由對於著每個方法,把 req() => 請求的api 看懂
 * 
 * 把 res(); => 的api  看會。就知道怎麼和服務端交換啦。
 * 
 * 當客戶端發送AJAX請求的時候,其實就是方法的每個方法。
 * 
 */

var server = app.listen('3000',function(){
    var host = server.address().address;
    var port = server.address().port;

    console.log('server start localhost',host,port);
})

3.靜態資源 app.user(express.statice('public'));

var express = require('express');

var app = express();

//設置靜態資源的位置

app.use(express.static('public'));

//http://localhost:3000/img/1.jpg

//public/img/1.jpg
var server = app.listen('3000',function(){
    var host = server.address().address;
    var port = server.address().port;

    console.log('server start localhost',host,port);
})

二、express的中間件

1.應用級中間件

var express = require('express');

var app = express();

// 沒有掛載路徑的中間件,應用的每個請求都會執行該中間件
app.use(function(req,res,next){

    console.log('應用級中間件');
    console.log('time' + Date.now());
    next();
})

app.get('/',function(req,res){
    res.send('我是 根路徑')
});

// 掛載至 /user/:id 的中間件,任何指向 /user/:id 的請求都會執行它
app.get('/user/:id',function(req,res,next){
    console.log('我是 user路由上面的子中間件');

    next();
});
app.get('/user/:id',function(req,res){
    var id = req.params.id;

    res.send(id);
});

app.get('/method/:id',function(req,res,next){
    console.log('methos路徑的參數',req.params);

    next();
},function(req,res,next){
    console.log('methods路徑的第二個參數',req.method)
    next();
})

app.get('/method/:id',function(req,res){
    var path = req.route;

    res.send(path);
});
var server = app.listen('3000',function(){
    var host = server.address().address;
    var port = server.address().port;
    console.log('server start localhost',host,port);
})

2.路由級中間件 express.Router();

var express = require('express');
var router = express.Router();
var app = express();

router.use(function(req,res,next){
    console.log(req.path);
    next()
});

router.get('/user/:id',function(req,res,next){
    console.log(req.originalUrl);
    next();
})

router.get('/user/:id',function(req,res){
    res.send(req.params);
})
app.use('/',router)
var server = app.listen('8080',function(){
    console.log('start')
});

3.錯誤級中間件

var express = require('express');
var app = express();

app.use(function(error,req,res,next){
    res.status('500').send('something error');
})

var server = app.listen('3000',function(){
    console.log('server start');
})

4.靜態資源中間件 express.static();

三、模板引擎

1.安裝jade模板引擎,cnpm || npm install jade --save

var express = require('express');
var app = express();

app.set('views','./views');
app.set('view engine','jade');

app.get('/',function(req,res){
    res.render('index',{title:'jade',message:'模板引擎'})
});

var server = app.listen('3000',function(req,res){
    console.log('server start');
})

2.view 下麵的index.jade

html
  head
    title!= title
  body
    h1!= message

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 英文原文:http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less-vs-stylus-a-preprocessor-shootout 原文鏈接:http://www.w3cplus.com/css/sass-vs-less ...
  • 講述js中的on事件與addEventListener的用法與不同 ...
  • 事件,就是網頁中某個特別值得關註的瞬間。事件經常由用戶操作或通過其他瀏覽器功能來觸發。 但很少有人知道,也可以使用JavaScript 在任意時刻來觸發特定的事件,而此時的事件就如同瀏覽器創建的事件一樣。也就是說,這些事件該冒泡還會冒泡,而且照樣能夠導致瀏覽器執行已經指定的處理它們的事件處理程式。在 ...
  • 1.字元串截取substr(str,length)返回從指定位置開始,截取length長度的子字元串。substring(start,end)返回從start開始到end結束的字元串。end不寫就到結尾。區別,前者截取長度,後者截取位置 2.頁面跳轉window.history.back();返回的 ...
  • 近期做一高校項目,招生計劃發佈需要實現同一專業在不同省份計劃招生的人數,即一對多以及多對多,就應用了批量填寫表單,由於整體UI框架用了bootstrap,那bootstrap-select的使用自然不在話下,於是使用了clone,但無奈發現bootstrap-select被clone,和after追 ...
  • 啥都不說了,直接上 1.Html結構代碼 2.css樣式代碼 3.javascript代碼 4.主要: a.字體豎排垂直:字體大小font-size = 包含字體標簽寬度width b.js中stop()方法:stop()表示結束動畫有過渡 stop(true)表示暫停動畫, stop(true,t ...
  • 又是輪播?沒錯,換個樣式玩輪播。 HTML: CSS: JS: ...
  • # vuejs tutorial ![vue-logo](img/logo.png) ## 搭建案例演示自動刷新環境 創建一個 `package.josn` 文件: ```bashnpm init -y``` 安裝 `browser-sync`: ```bash# npm install --sav ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...