我正在阅读RichardRodger的“移动的”,我发现一些示例代码使用了Connect,它不再允许直接处理到路由器层的请求。下面是一个给出“没有方法路由器”错误的示例:
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);
大多数关于node的书都包含了不能工作的代码,对于现在开始学习的人来说,一分钟后又不学习是非常令人沮丧的。开源框架经历了惊人的快速变化!我只需要学会怎么用正确的方式来做。有什么想法吗
2条答案
按热度按时间g6baxovj1#
是这样吗?
x7yiwoj42#
您安装的connect模块比本书更新。试试这个博客的解决方案:http://blog.riff.org/2012_04_09_missing_the_connect_router_middleware_for_nodejs
或者通过run命令使用connect-router模块:
npm install connect-route
或从github克隆:git clone git://github.com/baryshev/connect-route.git
到您的node_module目录中,然后通过以下方式进行安装:cd connect-route
-->npm install -d