《node.js开发指南》.get() requires callback functions but got a [object Undefined]
发布于 12 年前 作者 prostones 14878 次浏览 最后一次编辑是 8 年前

G:\workspace\Test2\node_modules\express\lib\router\index.js:252 throw new Error(msg); ^ Error: .get() requires callback functions but got a [object Undefined] at G:\workspace\Test2\node_modules\express\lib\router\index.js:252:11 at Array.forEach (native) at Router.route (G:\workspace\Test2\node_modules\express\lib\router\index.js:248:13) at Router.(anonymous function) [as get] (G:\workspace\Test2\node_modules\express\lib\router\index.js:270:16) at Function.app.(anonymous function) [as get] (G:\workspace\Test2\node_modules\express\lib\application.js:414:26) at Object.<anonymous> (G:\workspace\Test2\app.js:52:5) at Module._compile (module.js:456:26) at Object.Module._extensions…js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12)

正在做node.js开发指南中 注册和登入 一节的错误 一开始出了一个has no method 'router’的错误, 更改app.use(express.router(routes))为app.use(app.router),并添加routes(app)方法 然后就出现了上诉错误,请各位帮助一下啊

11 回复

同问!!!

我也在注册注册这块遇到个问题,求结局方案。

问题解决,原因是作者在书中漏说了一个步骤:在app.js中删除下面的几行代码即可。

app.get('/', routes.index);
app.get('/u/:user', routes.user);
app.post('/post', routes.post);
app.get('/reg', routes.reg);
app.post('/reg', routes.doReg);
app.get('login', routes.login);
app.post('login', routes.doLogin);
app.get('logout', routes.logout);

不用那么麻烦 只要在app.js中 把原来的app.get()删除 添加下面的 routes(app)

再到routes目录中 的index.js文件中修改 把原来的内容修改为 modules.exports = function(app){ app.get(’/’,function(req,res){ … } app.get app.get … }

就可以了 实现 app.get从app.js文件中分离出来

好吧,我也遇到这个问题了

赞。。。确实是这里的问题。

赞,今天遇到这个问题就是这样解决的,但是想问下大神您是通过阅读什么知道这个方法的,因为希望自己也能找到解决问题的方法~~~

注释了自己添加的没把原来的注释掉…… 话说 CNode 真的是学习Node的好地方啊!很多问题都在这里解决了! 谢谢!

别看那本书了,express 2 的知识,现在都 express 4 了。

等看完那本书又要开始看 《migrate from express 2.x to 4.x》 了。

虽然不知道原因,但是看到了答案

回到顶部