Node Js,Async Js,Listener必须是一个函数

时间:2014-01-23 11:44:02

标签: javascript node.js angularjs

下面是下面代码的输出日志,我不知道为什么会抛出错误,我认为行尾的数字是line numberchar number ,我会用代码发布一些关键行号。

  

由于某种原因不能工作
  系列完整

     

events.js:171个
      抛出TypeError('listener必须是一个函数');
            ^ TypeError:listener必须是函数
      在TypeError()
      在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
      在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)
      在_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();

1 个答案:

答案 0 :(得分:4)

尝试从

更改第39行
dbConn.once('open', callback(null));

dbConn.once('open', callback);