基本node.js教程错误对象函数路由器(req,res,next)没有方法init

时间:2014-07-24 21:48:37

标签: express webstorm

我是Express和Webstorm的新手,正在http://www.mattpalmerlee.com/2012/11/09/getting-started-with-node-js-express-and-jade-using-the-webstorm-ide/

处理一个简单的教程

我相信我已正确遵循所有说明,甚至修复了网站上的拼写错误(用户与用户等)。

最后,我收到以下错误:

/usr/bin/node app.js

/home/admin/WebstormProjects/MyNode/app.js:61 users.init();
      ^
    TypeError: Object function router(req, res, next) {
        router.handle(req, res, next);
      } has no method 'init'
        at Object.<anonymous> (/home/admin/WebstormProjects/MyNode/app.js:61:7)
        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)
        at Function.Module.runMain (module.js:497:10)
        at startup (node.js:119:16)
        at node.js:902:3

Process finished with exit code 8

我认为这是由于Express版本不兼容。我确实阅读了Express 4的更改文档,但我仍然无法调试此错误。

1 个答案:

答案 0 :(得分:1)

您需要将exports.init()更改为router.init()

router.init = function() {
    users.push(new User('Matt', 'Palmerlee', '818-123-4567'));
    users.push(new User('Joe', 'Plumber', '310-012-9876'));
    users.push(new User('Tom', 'Smith', '415-567-2345'));
}


/* GET users listing. */
router.get('/', function(req, res) {

    res.render('users', {'users':users, 'title':'Users'});
});

另外,请确保运行node bin\www而不是node app.js