nodejs02

来源:https://www.cnblogs.com/LuBingBing/archive/2022/11/22/16915210.html
-Advertisement-
Play Games

Express 快速創建 Web 伺服器 express 的基本使用 先安裝express包 npm i [email protected] 1.導入 express const express = require('express'); 2.創建 web 伺服器 const app = express( ...


Express 快速創建 Web 伺服器

express 的基本使用

先安裝express包

npm i [email protected]

1.導入 express

const express = require('express');

2.創建 web 伺服器

const app = express();

3.啟動 Web 伺服器

app.listen(80, () => {
    console.log("express server running at http://127.0.0.1");
});

4.監聽客戶端的 GET 和 POST 請求,並向客戶端響應具體內容

app.get('/user',(req,res ) => {
    // 調用 express 提供的 res.send() 方法,向客戶端響應一個 JSON 對象
    res.send({name: 'zs', age: 20, gender: '男'});
});

1668990404889

1668990429765

app.post('/user', (req, res) => {
    // 調用 express 提供的 res.send() 方法,向客戶端響應一個 文本字元串
    res.send('請求成功')
});

1668990728980

1668990746340

6. req.query對象 獲取 URL 攜帶的查詢參數

通過 req.query 對象,可以訪問到客戶端通過查詢字元串形式發送到伺服器的參數

app.get('/', (req, res) => {
    //通過 req.query 可以獲取到客戶端發送過來的 查詢參數
    //註意:預設情況下,req.query 是一個空對象
    console.log(req.query);  // 輸出 : {}
    res.send(req.query)    // => 返回空對象 {}
})

req.params 對象,獲取 URL 中的動態參數

通過 req.params 對象,可以訪問到 URL 中,通過 : 匹配到的動態參數
URL 地址中,可以通過 :參數名 的形式,匹配動態參數值

app.get('/user/:id', (req, res) => {
    // 這裡的 id 可以任意命名
    //預設情況下,req.params 是一個空對象
    // 裡面存放著通過 :動態匹配到的參數值
    console.log(req.params);
})
// get http://127.0.0.1/user/1 ,則輸出為{ "id: 1"}
// get http://127.0.0.1/user/2 ,則輸出為 {"id: 2"}

總體結構

//1.    導入 express
const express = require('express');
//2.    創建 web 伺服器
const app = express();

//4.監聽客戶端的 GET 和 POST 請求,並向客戶端響應具體內容
app.get('/user',(req,res ) => {
    // 調用 express 提供的 res.send() 方法,向客戶端響應一個 JSON 對象
    res.send({name: 'zs', age: 20, gender: '男'});
});
app.post('/user', (req, res) => {
    // 調用 express 提供的 res.send() 方法,向客戶端響應一個 文本字元串
    res.send('請求成功')
});
// 6. req.query對象  獲取 URL 攜帶的查詢參數
// 通過 req.query 對象,可以訪問到客戶端通過查詢字元串形式發送到伺服器的參數
app.get('/', (req, res) => {
    //通過 req.query 可以獲取到客戶端發送過來的 查詢參數
    //註意:預設情況下,req.query 是一個空對象
    console.log(req.query);  // 輸出 : {}
    res.send(req.query)    // => 返回空對象 {}
})
// req.params 對象,獲取 URL 中的動態參數
// 通過 req.params 對象,可以訪問到 URL 中,通過 : 匹配到的動態參數
// URL 地址中,可以通過 :參數名 的形式,匹配動態參數值
app.get('/user/:id', (req, res) => {
    // 這裡的 id 可以任意命名
    //預設情況下,req.params 是一個空對象
    // 裡面存放著通過 :動態匹配到的參數值
    console.log(req.params);
})
// get http://127.0.0.1/user/1 ,則輸出為{ "id: 1"}
// get http://127.0.0.1/user/2 ,則輸出為 {"id: 2"}
//3.    啟動 Web 伺服器
app.listen(80, () => {
    console.log("express server running at http://127.0.0.1");
});

Express 托管靜態資源

1.express.static()

在這裡,調用 express.static() 方法,快速對外提供靜態資源
如下代碼可以將 clock 目錄下的 html 文件,css 文件 ,js 文件對外開放訪問

app.use(express.static('./clock'));
//可以在瀏覽器中 http://127.0.0.1/index.css來訪問 clock 目錄下的index.css文件

2. express 托管多個靜態資源目錄

托管多個靜態資源目錄,只需要多次調用 express.static() 函數即可
express.static() 函數會根據添加順序查找所需文件

app.use(express.static('./clock'));
app.use(express.static('./files'));

3.掛載路徑首碼

在靜態資源訪問路徑之前,掛在首碼
此時http://127.0.0.1/index.html 訪問的是files目錄下的 index.html 文件
http://127.0.0.1/clock/index.html 加首碼 /clock 之後,訪問的才是 clock 目錄下的 index.html 文件

app.use('/clock',express.static('./clock'));
app.use(express.static('./files'));

nodemon 安裝

自動重啟項目,代碼進行修改後,不需要手動重啟

npm install -g nodemon

nodemon 使用

傳統方式啟動項目: node 項目文件(例如 node 01.js),代碼進行修改後,需要手動重啟
使用 nodemon 項目文件,代碼進行修改後,不需要手動重啟

nodemon 01.js
npx nodemon 01.js

express 路由

1. express 中的路由

路由指的客戶端的請求與伺服器處理函數之間的映射關係
METHOD 請求的類型, PATH 請求的URL地址,HANDER 處理函數

 app.METHOD(PATH, HANDER)
                    ```

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

-Advertisement-
Play Games
更多相關文章
  • 分庫分表,是企業裡面比較常見的針對高併發、數據量大的場景下的一種技術優化方案,也是一個非常高頻的面試題。但是,因為很多人其實並沒有非常豐富的分庫分表的經驗,所以能把這個問題回答得比較好的人其實還挺少的。 那麼,本文就來試圖把關於分庫分表的事情,一次性講個清楚。 ...
  • 一、MySQL簡介 ​ MySQL是一種關係型資料庫管理系統,關係資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。 二、安裝與下載 1、下載流程 1、訪問官方(www.mysql.com) 2、點擊‘DOWNLOADS’,進入下載界面 3、下拉,找到‘ ...
  • 在今年的第七屆中國開源年會上,StoneDB 團隊在大數據分論壇發表了《HTAP 的下一步?SoTP 初探》主題演講,在本次演講中,我們首次正式對外闡釋了“SoTP 資料庫”的技術理念,本系列是演講實錄+小編補充版,權當拋磚引玉,供大家批評指正。由於內容比較多,本文為第一章節,主要講講我們提 SoT ...
  • 1 構建一個centos7.6.1810的docker鏡像,用於下載MySQL+xtrabackup所需安裝包 7.6.1810的docker鏡像,低版本最小安裝,會儘可能把所需的包拉齊。 Dockerfile文件如下 FROM centos:7.6.1810 CMD yum install -y ...
  • 在Redis運維過程中,由於bigkey的存在,會影響業務程式的響應速度,嚴重的還會造成可用性損失,DBA也一直和業務開發方強調bigkey的規避方法以及危害 ...
  • Android網路請求(3) 網路請求框架OkHttp 本節我們來講解OkHtpp網路請求框架 什麼是網路請求框架 在我的理解中,網路請求框架是為了方便我們更加便捷規範的進行網路請求所建的類,我們通過調用該類中的方法可以快速地進行網路請求,切幫我們封裝好了一些數據的處理方法,方便我們用更少的代碼去做 ...
  • Android網路請求(2) 在android網路開發中,除get請求外常見的還有post、put、delete這三種,接下來我們將詳細講解這三種請求及參數 GET請求 我們使用過get請求了,對於我們的日常生活中get請求毫無疑問是最常用的請求方式,大部分的瀏覽器搜索都是通過get請求,如在百度上 ...
  • 最近需要接手別人c#那邊組的一個項目新增頁面,但他們的是React的框架,作為一名後端,沒接觸過,一臉懵逼。。。。。。 說哈我的處理思路: 一、先用相應的程式打開該項目的源碼。如:react用vscode打開 二、先找到了頁面,查看頁面結構 這是我後面加的頁面,可以看出來,less類似css樣式 j ...
一周排行
    -Advertisement-
    Play Games
  • MQTTnet 是一個高性能的MQTT類庫,支持.NET Core和.NET Framework。 MQTTnet 原理: MQTTnet 是一個用於.NET的高性能MQTT類庫,實現了MQTT協議的各個層級,包括連接、會話、發佈/訂閱、QoS(服務質量)等。其原理涉及以下關鍵概念: MqttCli ...
  • 在WPF中,源屬性(Source Property)指的是提供數據的屬性,通常是數據模型或者其他控制項的屬性,而目標屬性(Target Property)則是數據綁定的目標,通常是綁定到控制項的屬性,例如TextBlock的Text屬性。數據綁定將源屬性的值自動更新到目標屬性中。 主要包含以下幾個事件: ...
  • async/await 是 C# 中非同步編程的關鍵特性,它使得非同步代碼編寫更為簡單和直觀。下麵深入詳細描述了 async/await 的使用場景、優點以及一些高級使用方法,並提供了相應的實例源代碼。 使用場景: I/O 操作: 非同步編程特別適用於涉及 I/O 操作(如文件讀寫、網路請求等)的場景。在 ...
  • 使用過office的visio軟體畫圖的小伙伴都知道,畫圖軟體分為兩部分,左側圖形庫,存放各種圖標,右側是一個畫布,將左側圖形庫的圖標控制項拖拽到右側畫布,就會生成一個新的控制項,並且可以自由拖動。那如何在WPF程式中,實現類似的功能呢?今天就以一個簡單的小例子,簡述如何在WPF中實現控制項的拖拽和拖動,... ...
  • 1、Blazor Hybrid簡介 Blazor Hybrid 使開發人員能夠將桌面和移動本機客戶端框架與 .NET 和 Blazor 結合使用。在 Blazor Hybrid 應用中,Razor 組件在設備上是本機運行的。 這些組件通過本地互操作通道呈現到嵌入式 Web 視圖控制項。 組件不在瀏覽器 ...
  • 除了內置的數據集,scikit-learn還提供了隨機樣本的生成器。通過這些生成器函數,可以生成具有特定特性和分佈的隨機數據集,以幫助進行機器學習演算法的研究、測試和比較。 目前,scikit-learn庫(v1.3.0版)中有20個不同的生成樣本的函數。本篇重點介紹其中幾個具有代表性的函數。 1. ...
  • 從0到1,手把手帶你開發截圖工具ScreenCap------002實現通過文件對話框,選擇合適的文件夾,自定義預設的圖片保存位置,簡單易學 ...
  • 每次談到容器的時候,除了Docker之外,都會說起 Kubernetes,那麼什麼是 Kubernetes呢?今天就來一起學快速入門一下 Kubernetes 吧!希望本文對您有所幫助。 Kubernetes,一種用於管理和自動化雲中容器化工作負載的工具。 想象一下你有一個管弦樂隊,將每個音樂家視為 ...
  • 目錄 基本說明 安裝 Nginx 部署 VUE 前端 部署 Django 後端 Django admin 靜態文件(CSS,JS等)丟失的問題 總結 1. 基本說明 本文介紹了在 windows 伺服器下,通過 Nginx 部署 VUE + Django 前後端分離項目。本項目前端運行在 80 埠 ...
  • 從0到1,手把手帶你開發截圖工具ScreenCap------003實現最小化程式到托盤運行,- 為了方便截圖乾凈,實現最小化程式到托盤運行,簡潔,勿擾,實現最小化程式到托盤運行, 實現托盤菜單功能,實現回顯主窗體, 實現托盤開始截屏, 實現氣泡信息提示,實現托盤程式提示,實現托盤退出程式, 封裝完... ...