初識 Nodejs

gamebus發表於2021-09-09

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。

安裝

Node 的安裝非常簡單,不同的平臺有不同的安裝包,雙擊安裝就可以了。安裝成功後可以執行如下命令來檢視 Node 的版本:

$ node -v
v10.15.0

Hello World

在某個目錄下建立一個hello.js檔案,並寫入以下程式碼:

console.log("Hello World!");

透過命令列進入該檔案目錄,執行hello.js檔案:

$ node hello.js
Hello World!

這樣你就已經開始了第一個 Node 程式,其實 Node 是基於 V8 引擎,語言上就是 JavaScript,對於前端開發來說語法就不用多說了。

建立第一個應用

Node 並不像 .NET 和 Java 這種服務端技術,.NET 和 Java 需要建立在 IIS 或者 Tomcat 這種 Web 容器下;然而 Node 和他們完全不同,它不僅要實現一個應用還要實現整個 HTTP 伺服器。我們可以透過以下步驟來建立一個應用:

引入 HTTP 模組

使用require("http")來載入 http 模組,並將例項化的 HTTP 賦值給變數 http:

var http = require("http");

建立伺服器

我們使用http.createServer()方法來建立伺服器,並透過listen來繫結服務的埠,最後該方法的回撥來接受和響應資料,以下是http.js檔案的程式碼:

var http = require("http");

http.createServer((req, resp) => {
    resp.write("<h1>Hello World!</h1>");
    resp.end();
}).listen(8888);

啟動服務

$ node http.js

此時在本地瀏覽器中開啟: 即可看到頁面上列印出Hello World!

express 模組

Express 是一個基於 Node.js 平臺的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你建立各種 Web 和移動裝置應用。

首先需要安裝 express 模組:

$ npm install express --save

另外還需要安裝 EJS 模版引擎:

然後開始建立基於 Express 的服務。一下為express.js檔案程式碼:

var express = require("express");var ejs = require("ejs");var path = require("path");var app = express();

app.get("/", function(req, resp) {
    resp.send("Hello Express!");
});

app.get("/json", function(req, resp) {
    resp.json({
        name: "jay",
        age: 23
    });
});

app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");

app.get("/ejs", function(req, resp) {
    resp.render("app.ejs", {
        title: "Hello EJS",        list: ["Jay", "Lily", "Mini"]
    });
});

app.listen(8888);

建立模版app.ejs檔案:

<h1>    <%=title%></h1><ul><%for(var i=0; i<list.length; i++){%>
    <li><%=list[i]%></li><%}%></ul>

啟動服務:

$ node http.js`

這樣你就可以透過瀏覽器訪問如下頁面了:

將 Node 應用變成服務

雖然到此我們可以編寫出基於 Node 的應用,但是還需要一步讓這個應用能夠真正的成為一個穩定的服務,讓它永久的保留在後臺並且能夠自動的啟動服務,其實有很多第三方的方案或者元件可以解決這一問題:

總結

Node 為執行在伺服器端的 JavaScript,它基於 Google 的 V8 引擎,有著強大的效能和豐富的外掛,它是全棧工程師的首選利器。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2822633/,如需轉載,請註明出處,否則將追究法律責任。