restify module
restify是非常有名的一個Node.js網路服務模組,提供實作REST Server與Client的方式,並且透過簡單的設定機制,規範REST Server與Client的操作,
Github Repository
https://github.com/mcavage/node-restify
Installation
npm install restify
Sample Usage
下面是改寫來自官網的基礎範例,顯示透過restify來撰寫http rest服務相當方便,直接透過server[method]即可操作(這也是目前Node.js HTTP模組常見的操作方式)
/**
* 使用restify模組載入http server
*/
var server = require('restify').createServer();
/**
* 建立一個http get的模組,路由設定為"/hello/:name"
* 其中:name代表server在req.params中將帶入一個參數叫做name的
*
* callback function的三個參數分別代表:
* req: http request物件,封裝有http server接收request相關的資訊
* res: http response物件,封裝有http server要回應request的相關資訊
* next: http server的流程控制物件,當呼叫next時候,
* http server將會往下找下一個callback function
*/
server.get('/hello/:name',
function (req, res, next) {
res.send({msg: 'hello ' + req.params.name});
//res.send()所帶入的參數需要為json格式,否則會出現下面錯誤:
//{"code":"InternalError","message":"Object.keys called on non-object"}
});
/**
* 建立一個http head的function,如果您使用curl,可以這樣呼叫:
* curl -is http://localhost:8080/hello/mark -X HEAD -H 'connection: close'
*/
server.head('/hello/:name',
function (req, res, next) {
res.send({msg: 'hello ' + req.params.name});
});
/**
* 實際上啟動server,listen在8080 port的動作
*/
server.listen(8080, function() {
console.log('%s listening at %s', server.name, server.url);
});