2012-10-24 48 views
0

我正在閱讀Richard Rodger的「在雲中開始移動應用程序開發」,並且一些示例代碼使用Connect,我發現它不再允許直接請求處理到路由器層。下面是給出了一個樣本「有沒有方法路由器的錯誤:connect.router錯誤以及如何在節點中重寫它

var common = require('./common.js'); 
var util = common.util; 
var connect = common.connect; 
var mongo = common.mongo; 


var server = connect.createServer( 
    connect.router(function(app){ //gives the error: "has no method 'router' 

    // POST {id:<string>} 
    app.post('/todo/stats/init',function(req,res,next){ 
     common.readjson(req,function(json){ 
     common.sendjson(res,{ok:true,id:json.id}); 
     }) 
    }) 

    // POST {time:<UTC-millis>,total:<todos>,done:<done todos>} 
    app.post('/todo/stats/collect/:id',function(req,res,next){ 
     var id = req.params.id; 
     common.sendjson(res,{ok:true,id:id}); 
     common.readjson(req); 
    }) 
    }) 
); 


mongo.init('todo','localhost'); 
mongo.open() 

server.listen(3000); 

大多數的有關節點的著作包括代碼,不工作,這是誰的人現在開始學習和未很沮喪稍後再學習一下。開源框架經歷了驚人的快速變化!我只需要學習如何以正確的方式做到這一點。有什麼想法嗎?

+0

app.post和app.router是快捷函數,不連接。 –

回答

0

這是對的嗎?

var common = require('./common.js'); 
var util = common.util; 
var connect = common.connect; 
var mongo = common.mongo; 

connect.createServer(function (req, res, next) { 

    app.post('/todo/stats/init',function(req,res,next){ 
     common.readjson(req,function(json){ 
     common.sendjson(res,{ok:true,id:json.id}); 
     }) 
    }) 


    app.post('/todo/stats/collect/:id',function(req,res,next){ 
     var id = req.params.id; 
     common.sendjson(res,{ok:true,id:id}); 
     common.readjson(req); 
    }) 

     mongo.init('todo','localhost'); 
     mongo.open(); 


}).listen(3000); 
相關問題