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)方法 然后就出现了上诉错误,请各位帮助一下啊
同问!!!
我也在注册注册这块遇到个问题,求结局方案。
问题解决,原因是作者在书中漏说了一个步骤:在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》 了。
虽然不知道原因,但是看到了答案