2014-01-23 77 views
0

下面是下面代碼的輸出日誌,我不知道它爲什麼會拋出錯誤,我認爲行尾的數字是line numberchar number,我會用代碼發佈一些關鍵的行號。Node Js,Async Js,Listener必須是函數

for some reason not working
series complete

events.js:171
throw TypeError('listener must be a function');
^TypeError: listener must be a function
at TypeError()
at NativeConnection.EventEmitter.once (events.js:171:11)
at /home/melman/Documents/Git/angular-test/server.js:39:24
at /home/melman/Documents/Git/angular-test/node_modules/async/lib/async.js:5 48:21
at /home/melman/Documents/Git/angular-test/node_modules/async/lib/async.js:2 24:13
at iterate (/home/melman/Documents/Git/angular-test/node_modules/async/lib/a
sync.js:131:13)
at async.eachSeries (/home/melman/Documents/Git/angular-test/node_modules/as
ync/lib/async.js:147:9)
at _asyncMap (/home/melman/Documents/Git/angular-test/node_modules/async/lib
/async.js:223:9)
at Object.mapSeries (/home/melman/Documents/Git/angular-test/node_modules/as
ync/lib/async.js:213:23)
at Object.async.series (/home/melman/Documents/Git/angular-test/node_modules
/async/lib/async.js:546:19)

28: var serverConfiguration = { 
    init: function(){ 
30:  var self = this; 

     async.series([ 
      function (callback) { 
       // connect to the db 
       db.connect('mongodb://localhost/piautomation'); 

       var dbConn = db.connection; 
       dbConn.on('error', console.error.bind(console, 'connection error:')); 
       dbConn.once('open', callback(null)); 
40:   }, 
      function (callback) { 
       console.log('Configure the db'); 
       self.models = require('./server/config/mongoose')(db); // setup the db with the models and schemas 
       callback(null); 
      }, 
      function (callback) { 
       console.log("Start creating models"); 
       self.newsApi = require('./server/api/news')(self.models.News); // pass the news api the News model 
       callback(null); 
50:   }, 
      function (callback) { 
       console.log("configure routes"); 
       require('./server/config/routes')(app, self.newsApi, clientDir, callback); // set up the routes with the model api's functions 
      }, 
      function (callback) { 
       console.log("http server created"); 
       var server = http.createServer(app); 
       console.log("starting reload"); 
       reload(server, app); 
60:    console.log("start server listen"); 
       // if we have successful db connection, allow the rest of the app to start up 
       server.listen(app.get('port'), function(){ 
        console.log("Web server listening in %s on port %d", colors.red(process.env.NODE_ENV), app.get('port')); 
        callback(null); 
       }); 
       console.log("for some reason not working"); 
       callback(null); 
      } 
     ], function() { 
70:   console.log("series complete"); 
     }); 
    } 
}.init(); 

回答

4

嘗試從

dbConn.once('open', callback(null)); 

改變39行至

dbConn.once('open', callback); 
+4

你這畜生:),完美:) –