2012-06-05 54 views
3

我有一個包含多個服務器(用Java編寫)的設置,需要與中央服務器通信,每隔一段時間發佈一次狀態更新。這些狀態更新將被寫入數據庫,可能是MongoDB/Mongoose,它將通過REST由Web端處理。我應該如何在Node.js中使用Web前端實現RESTful API?

我一直在尋找Restify和Express作爲解決這個問題的兩種方法。該網站將查詢數據庫以及REST API。

我該如何解決這個問題?我是否應該同時使用Restify和Express來創建帶有API的網站?我應該使用鐵路嗎?謝謝。

回答

4

它沒有意義的,使用複雜的框架,如鐵路,這是建立在快速的頂部,並試圖像Ruby on Rails的。

您應該選擇Express或Restify,而不是兩者。

我會選擇Express over Restify,因爲代碼有很好的文檔記錄,並且庫更成熟和大量使用。你可以找到一些有關如何使用Express製作這樣的應用程序的有用教程,並且API非常好:

var express = require('express') 
    , app = express.createServer(); 

var users = [{ name: 'tj' }]; 

app.all('/user/:id/:op?', function(req, res, next){ 
    req.user = users[req.params.id]; 
    if (req.user) { 
    next(); 
    } else { 
    next(new Error('cannot find user ' + req.params.id)); 
    } 
}); 

app.get('/user/:id', function(req, res){ 
    res.send('viewing ' + req.user.name); 
}); 

app.get('/user/:id/edit', function(req, res){ 
    res.send('editing ' + req.user.name); 
}); 

app.put('/user/:id', function(req, res){ 
    res.send('updating ' + req.user.name); 
}); 

app.get('*', function(req, res){ 
    res.send('what???', 404); 
}); 

app.listen(3000); 
2

我個人發現express.js以滿足我的需求,因爲它的路由功能非常棒。檢出http://expressjs.com/guide.html#routing。它爲RESTful api完成了工作,速度非常快。

也:Node-PerfectAPI vs Restify.js vs ExpressJS vs Node-APIServer

+0

感謝您的迴應!你知道我怎麼可以驗證我的服務器之一是發送它而不是另一個客戶端?我正在考慮在請求中發送某種密鑰,但我不確定這是否是一種好的做法。 –

相關問題