Node.js - 創建 Express 項目

創建 Express 項目

安裝
npm i -g express-generatorornpm i -g express-generator@4# 注意:Windows有可能碰到提示:npm : 無法加載文件 C:\Program Files\nodejs\npm.ps1,因為在此系統上禁止運行腳本。
# 如果碰到這個錯誤,需要用`管理員身份`打開PowerShell,然后運行:
Set-ExecutionPolicy RemoteSigned
創建項目
# 創建項目
express --no-view clwy-api  //clwy-api是項目名稱# 注意:Windows有可能碰到提示:express : 無法加載文件 C:\Program Files\nodejs\express.ps1,因為在此系統上禁止運行腳本。
# 如果碰到這個錯誤,需要用`管理員身份`打開PowerShell,然后運行:
Set-ExecutionPolicy RemoteSigned# 進入項目之中
cd clwy-api 

這里要注意,我們使用了--no-view參數,它的意思是不需要任何視圖模板,因為我們這個項目專門做后端接口的。將來渲染頁面會使用VueReact之類的框架,所以不需要視圖。然后我們項目的名字叫做clwy-api

項目創建成功后,通過命令,安裝依賴包。
npm i 
or 
npm install
最后,運行命令,啟動服務
npm start

現在就可以通過?http://localhost:3000,來訪問我們的第一個項目了。

?輸出 json

繼續來改,我們這個項目是專門開發接口的,而接口所需要的是json格式,而不是直接輸出HTML

那么找到routes/index.js文件,將中間這行改為

router.get('/', function (req, res, next) {res.json({ message: 'Hello Node.js' });
});

它的意思就是以json格式來輸出?Hello Node.js

這時候我們刷新瀏覽器,會發現它沒有任何變化,還是顯示以前的內容。這是因為當修改代碼后,Express并沒有一直監聽我們的修改,運行的一直是之前的東西。想要顯示最新修改的內容,需要重啟服務。

回到命令行,按ctrl + c鍵,可以停止服務,接著再次運行npm start來啟動服務。接著還要刪掉public/index.html文件。

注意:請務必刪掉index.html。很多同學到這里沒有刪掉index.html就去訪問了,會導致無法顯示json數據。

刷新瀏覽器后,可以看到返回的json數據了

美化JSON格式

瀏覽器安裝 JSON-handle插件

nodemon 監聽修改?

?安裝nodemon包
npm i nodemon
?然后打開項目根目錄下的package.json,將start這里修改為
"scripts": {"start": "nodemon ./bin/www"
},
重啟項目
npm start

修改內容無需重啟,我們直接刷新,可以看到顯示的內容

總結

  1. 開發Node.js項目,要先安裝express-generator,這樣才能使用命令,創建項目
  2. 創建項目的命令是express --no-view?加上項目名
  3. 后端接口所使用的格式是:json,而不是:HTML
  4. 還要給項目安裝、配置nodemon,這樣Express才能監聽你的代碼

項目結構

使用express-generator建好的項目,都是這個結構。現在我們一一分析下,它們都是用來干嘛的

bin/www

package.json中,大家見過這個文件的配置。它是用來啟動項目的文件,無需修改,也不用管它,知道它是干嘛的就好了。

node_modules

展開后,會發現里面有非常多的文件。這就是當我們使用npm i命令后,安裝的項目依賴包。我們也不用管它,甚至將它們刪掉都沒關系。因為當你再次運行npm i后,它又會重新出現的。

public 目錄

這里放的各種靜態資源,例如 CSS、圖片等等靜態資源。但因為我們項目是專門開發接口的,所以這里的東西,大家完全不需要管它,根本用不上。

routes

這里是程序的路由部分,路由簡單的理解就是將不同網址,分別對應到不同的程序代碼上去。咱們開發項目,最重要的就是這個目錄了,后面我們開發要寫的代碼主要也都是在這里。

app.js

這個文件也很重要,在開發中,我們需要做一些路由的配置、跨域配置,都會來修改它的。

package.json

這里主要記錄的是項目的基本信息,和一些依賴包的情況。

package-lock.json

最后一個是package-lock.json,它是用來鎖定npm i時,安裝依賴包的版本號。并且將代碼發給其他人后,保證其他人在npm i時,所使用的依賴包版本號能一致。這個文件刪掉后,運行npm i也會自動重新生成的。

所以我們在開發中,目前要關注的就是router 目錄?和?app.js,其他文件都無需理會。

?

上面兩行就是引入express,定義了路由 (router),路由就是用來設置訪問地址的。它可以將不同的訪問地址,與一個個不同的方法對應起來。?

?簡單的了解一下路由?

?

注意看,這里有個getget是請求的一種,我們后面還有碰到其他的請求。get請求大家就簡單的理解成,用戶訪問瀏覽器了。get后面是/,這是訪問地址的路徑。

可以嘗試做一個修改,將/改為/hello

現在刷新頁面,瀏覽器會提示你?Cannot GET /,接著我們訪問?http://localhost:3000/hello,又會正確的顯示內容了。

req、res 和 next?

接著這里有個function,它就是當前路由/hello訪問后,所對應的,要運行的函數。它里面有三個參數,分別是:reqresnext

req

reqRequest的縮寫,也就是請求的意思。通過req,我們可以獲取到用戶通過URL,或者表單傳遞給我們的數據。例如用戶提交了一個關于注冊的表單,我們就可以從req中取出用戶提交的數據,從而進一步存入到數據庫中,保存起來。現在請先稍等一下,后面我們很快就會學習到相關的知識了。

res

resResponse的縮寫,也就是響應的意思。通過res,我們可以對用戶的請求做出響應。例如這里的

它的意思就是,當用戶訪問了?/hello?后,要通過json這種格式,顯示一段歡迎信息給用戶看。這樣用戶的瀏覽器上才能正確的顯示數據啊。

next

最后的next,沒錯,它就是下一步的意思。它允許我們在當前函數中對請求進行一些處理,然后再傳遞給下一個函數。

導出模塊

最底部的module.exports = router,這是Node.js中一種導出模塊的方式。在所有的路由文件中,你都將見到這一行,而這是必須存在的。因為只有這樣寫了以后,app.js中,才能正確的引用到我們當前的路由文件

?總結

  1. 目前開發中,只需要關注routes 目錄app.js 文件就好了,其他的都不用管它。
  2. 路由的作用,就是讓瀏覽器的訪問地址,與代碼段對應起來
  3. 推薦使用ES 6語法,用constlet來代替var

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92840.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高并發系統設計面試題

高并發系統設計面試題🔥🔥🔥 超高頻問題(幾乎必問)讓你設計一個秒殺系統,你會考慮哪些問題?如果你的業務量突然提升100倍QPS你會怎么做?庫存扣減如何避免超賣和少賣?訂單…

【通識】如何看電路圖

1. 電路圖 1.1 基礎概念 電路圖即電原理圖。 電路圖第一種是說明模擬電子電路工作原理,用圖形符號表示電阻器、電容器、開關、晶體管等實物,用線條把元器件和單元電路按工作原理的關系連接起來。 第二種則是說明數字電子電路工作原理的。用圖形符號表示…

SpringBoot實戰指南:從快速入門到生產級部署(2025最新版)

一、為什么SpringBoot依然是Java開發的首選? SpringBoot自2014年發布以來,已成為Java企業級開發的事實標準框架。根據2025年最新調研數據顯示,全球78%的Java微服務項目基于SpringBoot構建,其核心優勢在于: 約定優于配置…

新房裝修是中央空調還是壁掛空調好?

這個要看戶型和投資金額,大戶型空間適合裝中央空調,因為空間大有足夠的地方安裝,功率也可以根據面積大小進行配置,整體配置一個外機就行了,整體的裝修效果比較規整,就是多花點,使用成本也稍高點…

如何理解泊松分布

文章目錄一、引例——鯨魚研究二、泊松分布一、引例——鯨魚研究 有生態學家對生活在北冰洋水域的鯨魚進行了跟蹤研究,他們利用一臺水下無人機來探測鯨魚數量,這是近十天的數據: 第1天第2天第3天第4天第5天第6天第7天第8天第9天第10天10101…

python學習DAY22打卡

作業: 自行學習參考如何使用kaggle平臺,寫下使用注意點,并對下述比賽提交代碼 kaggle泰坦尼克號人員生還預測 import warnings warnings.filterwarnings("ignore") #忽略警告信息 # 數據處理清洗包 import pandas as pd import …

在 Ansys CFX Pre 中配置 RGP 表的分步指南

掌握在 Ansys CFX Pre 中設置 RGP 表的技巧,以優化仿真精度和效率。挑戰在計算流體動力學 (CFD) 領域,RGP(真實氣體屬性)表對于準確模擬流體在不同條件下的行為至關重要。這些表格提供了詳細的熱力學屬性&a…

C語言————原碼 補碼 反碼 (日漸清晰版)

本文的內容通下面這篇文章有著緊密的聯系,讀者可以選擇性閱讀 C語言————二、八、十、十六進制的相互轉換-CSDN博客 目錄 基本概念 原碼 反碼 補碼 轉換 數據的存儲方式 基本存儲單位 數據的計算方式 補碼的模運算原理 移位操作符 左移操作符 右移操…

函數-變量的作用域和生命周期

變量的作用域 引入問題 我們在函數設計的過程中,經常要考慮對于參數的設計,換句話說,我們需要考慮函數需要幾個參數,需要什么類型的參數,但我們并沒有考慮函數是否需要提供參數,如果說函數可以訪問到已定義…

Ansible在配置管理中的應用

Ansible是一個開源的配置管理和應用程序部署工具,它使用YAML語言編寫的Playbook來描述配置和應用部署過程。通過SSH協議與目標機器通信,Ansible可以實現批量操作,極大地提升了工作效率。核心功能Ansible的核心功能包括:配置管理&a…

【學習路線】Go語言云原生開發之路:從簡潔語法到微服務架構

一、Go語言基礎入門(1-2個月) (一)環境搭建與工具鏈Go環境安裝 官方安裝:從golang.org下載安裝包版本管理:g、gvm等Go版本管理工具環境變量:GOROOT、GOPATH、GOPROXY配置Go Modules:…

軟件工廠:推動新質生產力的組織躍遷

引言:軟件工廠的建設,不在于工具多,而在于理解深;不在于上線快,而在于體系穩。不僅是“看得見的流水線”,更是“看不見的組織變革”。在新質生產力的時代命題下,軟件工廠正成為連接創新與效率、…

9.0% 年增速驅動!全球自清潔滾輪拖布機器人市場2031年將邁向 946 百萬美元

自清潔滾輪拖布機器人是重要的智能清潔設備,采用滾筒式拖布結構,集掃拖功能,通過高速旋轉加壓擦洗地面,深度除污。其活水清潔系統可實時自清潔、回收污水,避免二次污染,提升清潔效率與效果,帶來…

新能源工廠的可視化碳中和實驗:碳足跡追蹤看板與能源調度策略仿真

摘要新能源工廠明明用著風電、光伏等清潔能源,碳排放數據卻依舊居高不下?某鋰電池廠耗費百萬升級設備,碳足跡卻難以精準追蹤,能源調度全靠經驗“拍腦袋”,導致成本飆升。而隔壁企業通過可視化碳中和實驗,碳…

數據結構自學Day13 -- 快速排序--“非遞歸利用棧實現”

一、快速排序回顧 快速排序本質上是**“分而治之”(Divide and Conquer)策略的遞歸應用。但遞歸其實就是函數棧的一種體現,因此我們也可以顯式使用棧(stack)來模擬遞歸過程**,從而實現非遞歸版本的快速排序…

前端數據庫:IndexedDB 基礎使用

前言 在現代 Web 開發中,隨著應用程序復雜度的增加,對本地存儲的需求也越來越高。雖然 localStorage 和 sessionStorage 可以滿足一些簡單的數據存儲需求,但當需要存儲大量結構化數據或進行復雜查詢時,它們就顯得力不從心了。這時…

Kubernetes深度解析:企業級容器編排平臺的核心實踐

引言:Kubernetes的戰略地位與核心價值在云原生技術生態中,??Kubernetes??已成為容器編排的事實標準。根據2023年全球云原生調查報告:全球??96%?? 的組織正在使用或評估Kubernetes企業生產環境Kubernetes采用率增長??400%??&#…

Netty中future和promise用法和區別

定義與概念 Future:表示一個異步操作的結果。它是只讀的,意味著你只能查看操作是否完成、是否成功、獲取結果或者異常等信息,但不能主動設置操作的結果。Promise:是 Future 的可寫擴展。它不僅可以像 Future 一樣查看操作結果&…

微算法科技(NASDAQ:MLGO)采用分布式哈希表優化區塊鏈索引結構,提高區塊鏈檢索效率

隨著區塊鏈技術的快速發展,其在各個領域的應用越來越廣泛。然而,區塊鏈數據的存儲和檢索效率問題一直是制約其發展的瓶頸之一。為了解決這一問題,微算法科技(NASDAQ:MLGO)采用了分布式哈希表(DHT)技術來優化…

Jmeter的元件使用介紹:(三)配置元件詳解01

Jmeter的配置元件有非常多,常用的有:信息頭管理器、Cookie管理器、用戶定義的變量、Http請求默認值、JDBC Connection Configuration、CSV 數據文件設置、計數器等,本文會對這些常用的配置元件一一介紹,還有其他很多配置元件&…