我是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的更改文档,但我仍然无法调试此错误。
答案 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