首頁 > 軟體

如何在Linux中編寫您的第一個Node.js應用程式

2020-06-16 16:40:02

Web開發趨勢在過去幾年中發生了巨大變化,作為Web開發人員,要想在遊戲中處於領先地位,保持最新技術的最新狀態非常重要。

JavaScript是當前流行的程式語言;毫無疑問,它是全棧開發人員使用的最流行的技術。

JavaScript Web框架已成為更快的Web開發的神奇解決方案,具有絕對的效率,安全性和最小的成本。我很確定你聽說過Node JavaScript(通常稱為Node.js或簡稱Node)。

在本文中,我將向您展示如何使用Linux中的Node.js開始使用JavaScript開發應用程式。但首先,讓我們簡要介紹一下Node.js.

什麼是Node.js?

Node.js是一個基於Chrome的V8 JavaScript引擎構建的開源,輕量級和高效的JavaScript執行時。它的設計沒有執行緒(單執行緒),並且與Twisted類似,後者是一個使用Python或Event Machine構建的網路引擎,這是一個用於Ruby程式的事件處理庫。

Node.js的核心是基於事件驅動的程式設計;因此,程式設計師應該了解可用的事件以及如何響應它們。

Node.js下的包管理

Node.js使用名為“npm”的JavaScript包管理器和生態系統,其中包含大量免費的開源庫。它支援模組化軟體開發。您可以使用它來安裝Node包,共用,分發程式碼和管理包依賴關係。

為什麼Node.js很重要?

Node.js是一個強大的,因此很重要,原因如下:

  • 它使用非同步事件驅動的非阻塞I/O執行模型,可提高應用程式的吞吐量並支援實際Web應用程式的可伸縮性。
  • 它是單執行緒的,因此在任何給定時間它只能使用1個CPU。
  • node.js Web應用程式是一個完整的Web伺服器,例如Nginx或Apache。
  • 它通過child_process.fork()支援執行緒,用於生成子進程,還提供了一個叢集模組。

通過這個簡短的介紹,您可能急於編寫您的第一個JavaScript程式。但是,首先,您需要使用以下指南在Linux系統上安裝Node.js和NPM軟體包。

如何在Linux中建立您的第一個Node.js應用程式

一旦安裝了Node.js,就可以開始了。首先建立一個儲存應用程式檔案的目錄。

$ sudo mkdir -p /var/www/myapp

然後進入該目錄並為您的應用程式建立package.json檔案。 此檔案有助於作為專案的小文件:專案名稱,作者,依賴的包列表等。

$ cd /var/www/myapp
$ npm init

這將詢問您一些問題,只需按照下面的說明進行回答,然後按[Enter]。 請注意,package.json中最重要的事情是名稱和版本欄位,如下所述。

  • package name - 您的應用名稱,預設為目錄名稱。
  • version - 您的應用程式的版本。
  • description - 為您的應用編寫簡短說明。
  • entry point - 設定要執行的預設包檔案。
  • test command - 用於建立測試指令碼(預設為空指令碼)。
  • git repository  - 定義一個Git儲存庫(如果有的話)。
  • keywords - 設定關鍵字,對於其他使用者在npm上識別您的包很重要。
  • author - 指定作者姓名,在此處輸入您的姓名。
  • license - 為您的應用/包指定許可證。

 接下來,建立一個server.js檔案。

$ sudo nano server.js

複製並貼上下面的程式碼。

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!www.linuxidc.com');
}).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

接下來,使用以下命令啟動應用程式。

$ node server.js

或者

$ npm start

接下來,開啟Web瀏覽器並存取您的Web應用程式,該應用程式將列印字串“Hello World!www.linuxidc.com”,使用地址:

http://localhost:8080

從瀏覽器存取Nodejs應用程式

在上面的程式碼中,正在處理的主要事件是通過HTTP模組的HTTP請求。

Nodejs HTTP模組

在Node.js中,模組更像是JavaScript庫,它們包含可以在應用程式中重用的函數。 您可以使用內建模組,30個party模組或建立自己的模組。

要在應用程式中呼叫模組,請使用require函數,如圖所示。

var http = require('http');

一旦包含http模組,它將建立一個偵聽特定埠的伺服器(在此範例中為8080)。 http.creatServer方法建立實際的http伺服器,該伺服器接受一個函數(在用戶端嘗試存取應用程式時呼叫)作為引數。

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!www.linuxidc.com');
}).listen(8080);

http.createServer中的函數有兩個引數:req(request)和res(response)。 req引數是來自使用者或用戶端的請求,res引數向用戶端傳送回復。

res.writeHead(200, { 'Content-Type': 'text/plain' });  #這是響應HTTP檔頭
res.end('Hello World!www.linuxidc.com');

一旦伺服器啟動,程式碼的最後部分就會將輸出傳送到控制台。

console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

Node.js中的路由

在本節中,我將解釋Node.js程式設計中稱為路由的最重要概念之一(與計算機網路下的路由相似:在網路中查詢路徑的過程)。

這裡,路由是一種處理用戶端請求的技術; 提供用戶端請求的內容,如URL中所指定。 URL由路徑和查詢字串組成。

要檢視用戶端的請求查詢字串,我們可以在響應中新增以下行。

res.write(req.url);
res.end()

以下是新程式碼。

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end(); 
      }).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

使用以下命令儲存檔案並再次啟動應用程式。

$ node server.js

或者

$ npm start

在Web瀏覽器中輸入不同的URL,如下所示。

檢視客戶的應用程式請求

現在,我們將為Linux公社www.linuxidc.com建立一個非常小的網站,其中包含主頁,關於和作者頁面。 我們將在這些頁面上顯示一些資訊。

開啟server.js檔案進行編輯,並在其中新增下面的程式碼。

//include http module
var http = require('http');

http.createServer(function(req,res){
 //store URL in variable q_string

 var q_string = req.url;
 switch(q_string) {
  case '/':
                         res.writeHead(200, { 'Content-Type': 'text/plain' });
                         res.write('歡迎光臨www.linuxidc.com!')
                         res.end();
                         break;
                 case '/aboutus':
                  res.writeHead(200, { 'Content-Type': 'text/plain' });
                         res.write('關於Linux公社');
                         res.write('nn');
                         res.write('Linux公社(www.linuxidc.com)是專業的Linux系統入口網站!');
                         res.write('n');
                         res.end('了解更多: https://www.linuxidc.com/aboutus.htm');
                         break;
                 case '/contactus:
                         res.writeHead(200, { 'Content-Type': 'text/plain' });
                         res.write('聯絡我們');
                         res.write('nn');
                         res.end('聯絡我們: https://www.linuxidc.com/contactus.htm');
                         break;
                 default:
                        res.writeHead(404, { 'Content-Type': 'text/plain' });
                        res.end('Not Found');
                         break;
 }
}).listen(1688);
console.log('Server started on localhost:1688; press Ctrl-C to terminate....');

OK!你可以在NodejsNPM網站上找到更多資訊。

總結

Node.js在今天達到了新的高度,它使得全棧開發比以前容易多了。事件驅動程式設計的獨特哲學使您能夠快速、高效和可伸縮地建立web流程和伺服器。

接下來,我們有空將再講述Nodejs架,它擴充套件了自己的原生功能,可以快速可靠地開發Web/移動應用程式。請通過下面的評論部分分享您對本文的看法。


IT145.com E-mail:sddin#qq.com