TypeError:无法读取undefined -Express的属性'push'

我已经为nodejs应用程序写了两个Javascript文件,它使用express来路由和创buildserver.As我是初学者,我不太了解它。 当我运行应用程序时,它显示我以下错误: –

/usr/lib/node_modules/express/lib/router/index.js:472 this.stack.push(layer); ^ TypeError: Cannot read property 'push' of undefined at Function.use (/usr/lib/node_modules/express/lib/router/index.js:472:15) at Object.<anonymous> (/home/dhiresh/Coding/angularjsapp/api.js:9:3) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (/home/dhiresh/Coding/angularjsapp/index.js:2:7) 

index.js文件如下:

 var express = require('express'), api = require('./api'), app=express(); app .use(express.static('./public')) .use('/api',api) .get('*',function (req,res) { res.sendfile('public/index.html'); }).listen(3000); 

api.js文件如下:

 var express = require('express'), bourne = require('bourne'), bodyParser= require('body-parser'), db = new bourne('data.json'), router =express.Router(); router .use(function(req,res,next){ if(!req.user) req.user={ id:1 }; next(); }) .use(bodyParser.json()) .route('/contact') .get(function(req,res){ db.find({userId : parseInt(req.user.id,10)},function(err,data){ res.json(data); }); }) .post(function(req,res){ var contact = req.body; contact.userId = req.user.id; db.insert(contact,function(err,data){ res.json(data); }); }); router .param('id',function(req,res,next){ req.dbQuery = { id:parseInt(req.params.id,10) } }) .route('/contact/:id') .get(function(req,res){ db.findOne(req.dbQuery,function(err,data){ res.json(data); }); }) .put(function(req,res){ var contact = req.body; delete contact.$promise; delete contact.$resolve; db.update(req.dbQuery,function(err,data){ res.json(data[0]); }) }) .delete(function(req,res){ db.delete(req.dbQuery,function(err,data){ res.json(null); }) }); module.exports = router; 

有谁能告诉我这个答案。