使用NodeJS+Express開發服務端。html
首先你須要安裝NodeJS環境 這裏再也不作介紹,
1.安裝Expressnode
1
2
|
npm install express -g
npm install express-generator -g
|
2.初始化項目mysql
1
2
|
cd /Users/SPRINT/Desktop 進入桌面
express 項目名稱
|
項目名稱咱們指定爲APIServer,從項目名稱能夠看出 咱們是模擬服務器API
在這裏咱們將提供一個獲取用戶詳情接口 並輸出JSON數據。sql
初始化項目數據庫
在終端最後位置 看到輸出兩個命令express
1
2
3
4
5
|
install dependencies:
$ cd APIServer && npm install //告訴咱們進入項目根目錄 執行npm install安裝依賴模塊
run the app:
$ DEBUG=APIServer:* npm start //告訴咱們啓動服務器
|
執行以下命令:npm
1
2
|
1.cd APIServer //進入項目根目錄
2.npm install //安裝依賴
|
咱們回到桌面 你將看到一個APIServer目錄 我在這裏使用Sublime Text打開瀏覽器
APIServer服務器
/bin:用來啓動應用(服務器)
/public: 存放靜態資源目錄
/routes:路由用於肯定應用程序如何響應對特定端點的客戶機請求,包含一個 URI(或路徑)和一個特定的 HTTP 請求方法(GET、POST 等)。每一個路由能夠具備一個或多個處理程序函數,這些函數在路由匹配時執行。
/views: 模板文件所在目錄 文件格式爲.jade
目錄app.js程序main文件 這個是服務器啓動的入口cookie
首先啓動服務器
1
|
npm start //啓動服務器
|
服務器啓動
啓動完成後終端將輸出 node ./bin/www
在瀏覽器中訪問 https://localhost:3000/
瀏覽器輸出
打開app.js 這裏介紹下主要代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
var express = require(
'express'
);
var path = require(
'path'
);
var favicon = require(
'serve-favicon'
);
var logger = require(
'morgan'
);
var cookieParser = require(
'cookie-parser'
);
var bodyParser = require(
'body-parser'
);
var app = express();
///=======路由信息 (接口地址)開始 存放在./routes目錄下===========//
var routes = require(
'./routes/index'
);//home page接口
var users = require(
'./routes/users'
); //用戶接口
app.use(
'/'
, routes); //在app中註冊routes該接口
app.use(
'/users'
, users);//在app中註冊users接口
///=======路由信息 (接口地址 介紹===========//
///=======模板 開始===========//
//
view
engine setup
app.
set
(
'views'
, path.
join
(__dirname,
'views'
));
app.
set
(
'view engine'
,
'jade'
);
///=======模板 結束===========//
|
當咱們在瀏覽器中 訪問 https://localhost:3000/ 調用的就是index中的接口
咱們打開index.js就能夠看到該接口的定義:
1
2
3
4
5
6
7
8
9
10
11
|
var express = require(
'express'
);
var router = express.Router();
//定義一個get請求 path爲根目錄
/* GET home page. */
router.get(
'/'
,
function
(req, res,
next
) {
res.render(
'index'
, { title:
'Express'
});
});
module.exports = router;
|
定義一個路由的基本格式爲:
1
|
app.METHOD(PATH, HANDLER)
|
其中:
app 是 express 的實例。
METHOD是 HTTP 請求方法。
PATH 是服務器上的路徑。
HANDLER 是在路由匹配時執行的函數。
以上的定義表明
在根路由 (/) 上(應用程序的主頁)對 GET 請求進行響應:
是否是明白了?
若是咱們想要實現一個獲取用戶信息接口該怎麼寫呢?
很簡單在 routes目錄下建立一個user.js文件內容以下:
定義一個User模型
1
2
3
4
5
6
|
function
User
() {
this.
name
;
this.city;
this.age;
}
module.exports =
User
;
|
User
切換到users.js文件
在文件頂部添加
1
|
var URL = require(
'url'
);
|
並繼續添加以下內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
router.get(
'/getUserInfo'
,
function
(req, res,
next
) {
var
user
= new
User
();
var params = URL.parse(req.url,
true
).query;
if(params.id ==
'1'
) {
user
.
name
=
"ligh"
;
user
.age =
"1"
;
user
.city =
"北京市"
;
}
else
{
user
.
name
=
"SPTING"
;
user
.age =
"1"
;
user
.city =
"杭州市"
;
}
var response = {status:1,data:
user
};
res.send(JSON.stringify(response));
});
|
解釋下重點:
1
2
|
獲取url參數 依賴於url模塊 使用前須要使用 require(
'url'
)
var params = URL.parse(req.url,
true
).query;
|
getUserInfo API
因爲users.js路由信息已經在app.js註冊
中止服務器 從新start服務器便可直接訪問
調用方式
https://localhost:3000/users/getUserInfo?id=1
或者
https://localhost:3000/users/getUserInfo?id=2
響應數據
你是否是注意到咱們訪問的方式爲users/getUserInfo?id=1 而不是基於根
緣由是咱們在app.js註冊方式爲app.use('/users', users);
咱們能夠利用這種方式 開發模塊功能 好比 你有另一個模塊爲msg
咱們註冊爲:app.use('/msgs', msgs);
調用方式爲
https://localhost:3000/msgs/getUserMsgs?id=1
這裏咱們寫死了返回數據 並無查詢數據庫
固然NodeJS具有訪問mysql的能力 但不是本篇文章的介紹範圍
OK 我以爲入門已經徹底夠了 點到爲止~~~