使用NodeJS+Express開發服務端

使用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 我以爲入門已經徹底夠了 點到爲止~~~

相關文章
相關標籤/搜索