創建一個提供數據 API 的 Node.js 網站


 

創建站點目錄

首先,創建一個文件夾用來保存你的站點文件,使用 mkdir 就可以了

PS C:\> mkdir mysite

然后,進入到這個文件夾進行下一步的操作。

創建包說明

使用記事本或者你喜歡的任何純文本編輯器創建 package.json 文件,文件名是一個約定必須是這個名字。

創建本網站自身的說明,說明依賴的其它包。

{
    "name": "express-api",
    "version": "0.0.1",
    "dependencies": {
        "express": "2.5.9",
        "ejs": "0.4.2"
    }
}

安裝需要的包

然后,執行 npm install 安裝所依賴的包。npm 會自動尋找當前目錄下的 package.json 文件的。

安裝之后,目錄中多了一個文件夾 node_modules.

創建程序

使用任何你喜歡的純文本編輯器開始寫你的 node.js 代碼,如果你有 Visual Studio 當然更好了。

先讓我們的服務器運行起來。創建名為 server.js 的代碼文件,寫入下面的內容就可以創建一個 web 服務器了。

var express = require("express");
var app = express.createServer();
console.log("Web Server listening ......");
app.listen(3000);

在命令行執行下面的命令 node server ,啟動我們的站點。你會看到網站服務器已經在運行了。

PS C:\mysite> node server
Web Server listening ......

但是,訪問一下,你會發現無法找到網頁,當然了,我們現在一個網頁也沒有呀!

創建視圖

你可以注意到了,我們的站點依賴於一個名為 ejs 的模塊,這個模塊提供了視圖支持,我們可以使用類似於 ASP.NET MVC 中的視圖來創建頁面。

在站點的根目錄下創建一個名為 views 的文件夾,保存我們的視圖。

創建我們的歡迎頁面 index.ejs,注意擴展名,這是 ejs 的約定。

<h1>Data API</h1>
<p>Welcome!</p>

把我們的代碼修改一下,當訪問 / 的時候,返回這個視圖。

var express = require("express");
var app = express.createServer();
app.set("view engine", "ejs");
app.set("views", __dirname + "/views");
app.set("view options", { layout: false });

app.get("/", function (request, response) {
    response.render("index");
});
console.log("Web Server listening ......");
app.listen(3000);

增加的幾個 set 用來說明我們的視圖引擎要使用 ejs 引擎,我們的視圖文件保存在當前目錄下的 views 文件夾中,現在還沒有使用布局。
增加的 get 則說明當接收到一個 get 請求訪問 / 的時候,我們需要使用名為 index 的視圖來呈現返回結果。

現在訪問 http://127.0.0.1:3000 就會收到這樣的回應了。

創建數據

我們希望提供數據的 API ,數據保存在哪里呢?

我們先保存一個 json 文件中,這個文件包含用戶的信息,名為 data.json。

{
    "1": {
        "name":"tom",
        "email":"tom@nodejs.org"
    },
    "2": { 
        "name":"red",
        "email":"red@nodejs.org"
    }
}

然后,我們希望通過用戶的標識來獲取用戶的信息。
在我們的代碼中添加下面的一段。

app.get("/user/:id", function (request, response) {
    var id = request.params.id;
    console.log(id);
    response.json(data[id]);
});

:id 表示這是一個參數,在處理函數中可以通過 request.params.id 來獲取到。

新增加的第一行用來加載我們的數據文件 data.json ,不要忘了前面的 ./ , 否則 node 會到 node_modules 中去找這個模塊的。
現在我們的代碼變成了這樣。

var data = require("./data");

var express = require("express");
var app = express.createServer();
app.set("view engine", "ejs");
app.set("views", __dirname + "/views");
app.set("view options", { layout: false });

app.get("/", function (request, response) {
    response.render("index");
});

app.get("/user/:id", function (request, response) {
    var id = request.params.id;
    console.log(id);
    response.json(data[id]);
});

console.log("Web Server listening ......");
app.listen(3000);

現在,在地址欄中輸入 /user/1 ,你就會收到一個 json 的返回結果,其中是 1 號用戶的信息了。

數一數,你用了幾行就實現了一個簡單的 API 服務?

包括空行也只有 20 行而已。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM