nodejs進階1--輸出hello world

来源:http://www.cnblogs.com/fangsmile/archive/2017/01/03/6244788.html
-Advertisement-
Play Games

下麵將帶領大家一步步學習nodejs,知道怎麼使用nodejs搭建伺服器,響應get/post請求,連接資料庫等。 搭建伺服器頁面輸出hello world 基本語句說明: 1)require 語句,模塊通過它載入。 對於該語句的解析可參見我的文章《require() 源碼解讀》(http://ww ...


下麵將帶領大家一步步學習nodejs,知道怎麼使用nodejs搭建伺服器,響應get/post請求,連接資料庫等。

搭建伺服器頁面輸出hello world

 1 var  http  =  require('http');  
 2 http.createServer(function  (request,  response)  {  
 3     response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
 4     if(request.url!=="/favicon.ico"){  //清除第2此訪問 node.js bug,第二次訪問/favicon.ico
 5         console.log('訪問');  
 6         response.write('hello,world 世界');  
 7         response.end();//不寫則沒有http協議尾
 8     }  
 9 }).listen(8000);  
10 console.log('Server  running  at  http://127.0.0.1:8000/');  
11   
12 /*  
13 啟動服務  
14 cmd下執行:  
15 node  1_helloworld.js  
16 瀏覽器訪問:http://localhost:8000  
17 */  

基本語句說明:

1)require 語句,模塊通過它載入

對於該語句的解析可參見我的文章《require() 源碼解讀》(http://www.cnblogs.com/fangsmile/p/6244615.html)

2)http.createServer(function(req, res){  }).listen(8000);

方法說明:

該函數用來創建一個HTTP伺服器,並將 requestListener 作為 request 事件的監聽函數。最後調用listen函數,監聽埠。

接收參數:

requestListener   請求處理函數,自動添加到 request 事件,函數傳遞兩個參數:

    req  請求對象,想知道req有哪些屬性,可以查看 “http.request 屬性整合”。

    res   響應對象 ,收到請求後要做出的響應。想知道res有哪些屬性,可以查看 “http.response屬性整合”。

3)response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  

方法說明:

向請求的客戶端發送響應頭。

接收參數:

statusCode   HTTP狀態碼,如200(請求成功),404(未找到)等。

headers     類似關聯數組的對象,表示響應頭的每個屬性

該函數在一個請求內最多只能調用一次,如果不調用,則會自動生成一個響應頭。

4)response.end()

方法說明:

結束響應,告訴客戶端所有消息已經發送。當所有要返回的內容發送完畢時,該函數必須被調用一次。

如何不調用該函數,客戶端將永遠處於等待狀態。

將上面的代碼複製保存到1_helloworld.js,cmd下執行語句:node  1_helloworld.js 。再去瀏覽器訪問:http://localhost:8000  

下節課介紹函數調用:nodejs進階2--函數模塊調用


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

-Advertisement-
Play Games
更多相關文章
  • 本文原創,轉載請註明出處! 參考文章: 《“JUC鎖”03之 公平鎖(一)》 《“JUC鎖”03之 公平鎖(二)》 AbstractOwnableSynchronizer,用於供子類存取獨占鎖的所屬線程。 #getExclusiveOwnerThread()/#setExclusiveOwnerTh ...
  • var n=0; for(var i=2;i<=1000;i++){ var zhishu=true; for(var j=2;j<i;j++){ if(i%j==0){ zhishu=false; break; } } if(zhishu==true){ document.write(i+"<br ...
  • 前言 前一階段對MVC模式及其衍生模式做了一番比較深入的研究和實踐,這篇文章也算是一個階段性的回顧和總結。 經典MVC模式 經典MVC模式中,M是指業務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式。其中,View的定義比較清晰, ...
  • 這是一個商場收費軟體的一個案例,如下: 用Winform做一個非常簡單的商場計算價格的工具,一般我們寫的代碼和界面如下: 界面: 代碼: 執行效果: 二、演繹 1、第一步演繹 ①商場搞活動,所有商品八折出售。 有的小伙伴直接將原來計算總價的代碼改成下麵的代碼: 額,如果商場不打折了,還需要將這段代碼 ...
  • C#使用GET、POST請求獲取結果,這裡以一個簡單的用戶登陸為例。 1、 使用GET請求獲取結果 1.1 創建LoginHandler.aspx處理頁面 [csharp] view plain copy protected void Page_Load(object sender, EventAr ...
  • ------------------------------------------------------------------------------------------------... ...
  • 在學習springAOP時,出現如下異常: 無法訪問org.springframework.core.NestedRuntimeException 找不到org.springframework.core.NestedRuntimeException的類文件 原因是:缺少spring-core.jar ...
  • 一、舉例 用控制台程式做一個非常簡單的電腦,實現加減乘除運算即可,那麼,大家自然而然的會寫出如下代碼 二、演繹 1、第一步演繹 ①由於在判斷運算符時,用的是if語句,這意味著每個條件都需要做判斷,相當於電腦做了三次無用功。 ②沒有輸入校驗,例如,除數不能為零的問題等等 就上述兩個問題,做如下修改 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...