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
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...