第3節 Node.js 創建第一個應用

Node.js 非常強大,只需動手寫幾行代碼就可以構建出整個HTTP服務器。事實上,我們的Web應用以及對應的Web服務器基本上是一樣的。

在我們創建Node.js第一個"Hello, World!"應用前,讓我們先了解下Node.js應用是由哪幾部分組成的:

  1. 引入模塊(required):我們可以使用require指令來載入Node.js模塊。

  2. 創建服務器:服務器可以監聽客戶端的請求,類似于Apache 、Nginx等HTTP服務器。

  3. 接收請求與響應請求:服務器很容易創建,客戶端可以使用瀏覽器或終端發送HTTP請求,服務器接收請求后返回響應數據。


創建 Node.js 應用

步驟一、引入required模塊

我們使用require指令來載入http模塊,并將實例化的HTTP賦值給變量http,實例如下:

var http = require("http");

步驟二、創建服務器

接下來我們使用http.createServer()方法創建服務器,并使用listen方法綁定8888端口。 函數通過request, response參數來接收和響應數據。

實例如下,在你本地計算機中創建一個文件項目,并在這個文件項目中的根目錄下創建一個叫server.js的文件,并寫入以下代碼:

如下項目截圖所示:

2

server.js的文件代碼如下:

var http = require('http');
http.createServer(function (request, response) {// 發送 HTTP 頭部 // HTTP 狀態值: 200 : OK// 內容類型: text/plainresponse.writeHead(200, {'Content-Type': 'text/plain'});// 發送響應數據 "Hello World"response.end('Hello World\n');
}).listen(8888);
// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

以上代碼我們完成了一個可以工作的HTTP服務器。

在文件中打開Powershell窗口如下所示:

2

之后在執行下面的命令既可:

node server.js
Server running at http://127.0.0.1:8888/

3

接下來,打開瀏覽器訪問http://127.0.0.1:8888/,你會看到一個寫著"Hello World"的網頁。

1

分析Node.js的HTTP服務器:

  • 第一行請求(require)Node.js自帶的 http 模塊,并且把它賦值給http變量。
  • 接下來我們調用http模塊提供的函數:createServer 。這個函數會返回 一個對象,這個對象有一個叫做listen的方法,這個方法有一個數值參數,指定這個HTTP服務器監聽的端口號。

Gif 實例演示

接下來我們通過Gif圖為大家演示實例操作:

1

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

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

相關文章

ubuntu 安裝上傳的 ffmpeg_7.1.1.orig.tar.xz并使用

在 Ubuntu 上安裝并編譯上傳的 ffmpeg_7.1.1.orig.tar.xz 源碼包,請按照以下詳細步驟操作: 步驟 1:安裝編譯依賴 # 更新軟件包列表 sudo apt update# 安裝編譯工具和基礎依賴 sudo apt install -y build-essential autoconf automake cmake …

【Netty系列】核心概念

目錄 1. EventLoop 與線程模型 2. Channel(通道) 3. ChannelHandler 與 Pipeline 4. ByteBuf(數據容器) 5. Bootstrap 與 ServerBootstrap 6. Future 與 Promise 7. 其他核心概念 總結 Netty 是一個高性能、異步事件驅動的…

C# Costura.Fody 排除多個指定dll

按照網上的說在 FodyWeavers.xml 里修改 然后需要注意的是 指定多個排除項 不是加 | 是換行 一個換行 就排除一項 我測試的 <?xml version"1.0" encoding"utf-8"?> <Weavers xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&quo…

C++基礎算法————廣度優先搜索(BFS)

一、引言 在計算機科學中,搜索算法是解決各種問題的關鍵工具之一。廣度優先搜索(Breadth-First Search,簡稱BFS)作為其中一種重要的搜索算法,以其獨特的搜索策略和廣泛的應用場景,在眾多領域發揮著重要作用。對于初學者來說,深入理解和掌握BFS算法是提升編程能力、解決…

關于Web安全:7. WebShell 管理與持久化后門

一、菜刀馬 菜刀馬&#xff08;ChinaZ WebShell&#xff09; 是一種與“中國菜刀&#xff08;ChinaZ&#xff09;”客戶端配合使用的 WebShell 木馬&#xff0c;廣泛應用于 Web 滲透測試中&#xff0c;主要使用 PHP/ASP/JSP 等語言編寫。 它的本質是一個一句話木馬&#xff0…

【仿生系統】qwen的仿生機器人解決方案

收到完整需求后&#xff0c;我將從系統架構設計、算法實現路徑、訓練方法三個維度為您構建完整的仿生機器人解決方案。以下是分階段實施方案&#xff1a; 一、核心系統架構設計&#xff08;模塊化可進化架構&#xff09; 1. 多模態感知引擎 - 視覺子系統&#xff1a;YOLOv8SAM…

Tomcat- AJP協議文件讀取/命令執行漏洞(幽靈貓復現)詳細步驟

一、漏洞描述 Apache Tomcat是由Apache軟件基金會屬下Jakarta項目開發的Servlet容器.默認情況下,Apache Tomcat會開啟AJP連接器,方便與其他Web服務器通過AJP協議進行交互.但Apache Tomcat在AJP協議的實現上存在漏洞,導致攻擊者可以通過發送惡意的AJP請求,可以讀取或者包含Web應…

IEEE P370:用于高達 50 GHz 互連的夾具設計和數據質量公制標準

大多數高頻儀器&#xff0c;如矢量網絡分析儀 &#xff08;VNA&#xff09; 和時域反射儀 &#xff08;TDR&#xff09;&#xff0c;都可以在同軸接口的末端進行非常好的測量。然而&#xff0c;復雜系統中使用的互連很少具有同軸接口。用于表征這些設備的夾具的設計和實施會對測…

OneForAll 使用手冊

OneForAll 使用手冊 一、概述 OneForAll 是一款功能強大的子域名收集工具&#xff0c;旨在幫助安全測試人員和網絡管理員全面發現目標域名的所有子域名&#xff0c;為后續的安全評估和漏洞測試提供基礎支持。它集成了多種子域名發現方法&#xff0c;包括搜索引擎查詢、DNS 枚…

從前端工程化角度解析 Vite 打包策略:為何選擇 Rollup 而非 esbuild。

文章目錄 前言一、esbuild 與 Rollup 的技術特性對比&#xff08;一&#xff09;esbuild&#xff1a;極速開發利器&#xff0c;功能尚待完善&#xff08;二&#xff09;Rollup&#xff1a;專業打包工具&#xff0c;功能全面強大 二、Vite 打包策略的工程化考量因素&#xff08;…

Chrome 通過FTP,HTTP 調用 Everything 瀏覽和搜索本地文件系統

【提問1】 Chrome調用本地 everything.exe, everything 好像有本地 FTP 服務器&#xff1f; 【DeepSeek R1 回答】 是的&#xff0c;Everything 確實內置了 HTTP/FTP 服務器功能&#xff0c;這提供了一種相對安全的瀏覽器與本地應用交互的方式。以下是完整的實現方案&#x…

Java八股文智能體——Agent提示詞(Prompt)

這個智能體能夠為正在學習Java八股文的同學提供切實幫助&#xff1a;不僅可以幫你優化答案表述&#xff0c;還能直接解答八股文相關問題——它會以面試者的視角&#xff0c;給出貼合求職場景的專業回答。 將以下內容發送給任何一個LLM&#xff0c;他會按照你提示詞的內容&…

Android 緩存應用凍結器(Cached Apps Freezer)

一、核心功能與原理 1. 功能概述 目標&#xff1a;通過凍結后臺緩存應用的進程&#xff0c;減少其對 CPU、內存等系統資源的消耗&#xff0c;優化設備性能與續航。適用場景&#xff1a;針對行為不當的后臺應用&#xff08;如后臺偷偷運行代碼、占用 CPU&#xff09;&#xff…

內存管理 : 06 內存換出

內存換出的重要性及與換入的關系 現在我們講第25講&#xff0c;主題是內存的換出&#xff08;swipe out&#xff09;。實際上&#xff0c;上一講我們講的是內存的換入&#xff0c;而這一節聚焦于內存的換出。 換入和換出必須合在一起工作&#xff0c;不能只有換入而沒有換出。…

第一節 51單片機概述

目錄 一、單片機系統組成 &#xff08;一&#xff09;、單片機硬件系統 &#xff08;二&#xff09;單片機的軟件系統 二、STC89C52單片機 &#xff08;1&#xff09;、基本信息 &#xff08;2&#xff09;、命名規則 &#xff08;3&#xff09;、單片機內部結構圖 &am…

前端面試準備-4

1.React Router的history模式中&#xff0c;push和replace有什么區別 都是用于頁面導航&#xff0c;但是他們對瀏覽器歷史記錄的處理不一樣。 ①&#xff1a;push是在瀏覽歷史棧里加入一條新的瀏覽歷史&#xff0c;點擊返回鍵會返回上一個頁面 ②;replace是替換當前歷史記錄…

【機器學習基礎】機器學習入門核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation)

機器學習入門核心&#xff1a;Jaccard相似度 &#xff08;Jaccard Index&#xff09; 和 Pearson相似度 &#xff08;Pearson Correlation&#xff09; 一、算法邏輯Jaccard相似度 (Jaccard Index)**Pearson相似度 (Pearson Correlation)** 二、算法原理與數學推導1. Jaccard相…

Unity3D仿星露谷物語開發57之保存庫存信息到文件

1、目標 保存下面庫存欄中信息到文件中。 2、修改SceneSave.cs腳本 添加2行代碼&#xff1a; 3、修改InventoryManager對象 添加Generate GUID組件。 4、修改InventoryManager.cs腳本 添加繼承自ISaveable 添加屬性信息&#xff1a; private string _iSaveableUniqueID;pub…

測量3D翼片的距離與角度

1&#xff0c;目的。 測量3D翼片的距離與角度。說明&#xff1a; 標注A 紅色框選的區域即為翼片&#xff0c;本示例的3D 對象共有3個翼片待測。L1與L2的距離、L1與L2的角度即為所求的翼片距離與角度。 2&#xff0c;原理。 使用線結構光模型&#xff08;標定模式&#xff0…

深入理解 SQL 的 JOIN 查詢:從基礎到高級的第一步

在處理數據庫時&#xff0c;我們常常需要從多個表中提取數據。比如想知道一個城市的天氣情況&#xff0c;同時又想知道這個城市的具體位置。這就需要將 weather 表和 cities 表結合起來查詢。這種操作在 SQL 中被稱為 JOIN 查詢。 現在看下兩種表的情況 1.weather 表&#xff…