2016-03-25 6 views
0

Я использую mysql-orm в приложении Nodejs Экспресс Это мой код:Экспресс использование приложения после DB обратного вызова

app.js:

// ... all variables are initialized 
var orm = null; 
var app = express(); 

db.create(dbSchema, dbSeeds, dbOptions, function(err, ormObject) { 
    if (err) throw err; 
    orm = ormObject; 
}); 

var coursesRoutes = require('./routes/dashboard/courses')(orm); 
app.use('/dashboard/courses', coursesRoutes); 

/routes/dashboard/courses.js :

var express = require('express'); 
var router = express.Router(); 

module.exports = function(orm) { 

    router.get('/listall', function(req, res, next) { 
     orm.loadMany('sections', null, function(err, sections) { 
      if (err) throw err; 
      res.jsonp(sections); 
     }); 
    }); 
    return router; 
}; 

И это возвращает эту ошибку:

TypeError: Cannot read property 'loadMany' of null

Я знаю, что проблема заключается в том, что orm переменных передаются в файл до его инициализации в db.create обратного вызова, но я не знаю, как решить эту проблему.

Я пытался поставить:

var coursesRoutes = require('./routes/dashboard/courses')(orm); 
app.use('/dashboard/courses', coursesRoutes); 

внутри обратного вызова, но она возвращает 404 не найден

ответ

0

Ваша функция обучения становится вызывается до установления соединения дб.

Это должно сделать трюк.

var orm = null; 
var app = express(); 

db.create(dbSchema, dbSeeds, dbOptions, function(err, ormObject) { 
    if (err) throw err; 
    orm = ormObject; 
    var coursesRoutes = require('./routes/dashboard/courses')(orm); 
    app.use('/dashboard/courses', coursesRoutes); 
}); 
+0

это возвращает 404 не найдено – Burawi

 Смежные вопросы

  • Нет связанных вопросов^_^