2016-03-25 5 views
0

J'utilise mysql-orm dans une application NodeJS express voici mon code:utilisation de l'application Express après rappel 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; 
}; 

Et cela renvoie cette erreur:

TypeError: Cannot read property 'loadMany' of null

Je sais que le problème est que la variable orm est passé à déposer avant qu'il soit initialisé dans le rappel db.create mais je ne sais pas comment résoudre ce problème.

J'ai essayé de mettre:

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

dans le rappel, mais il retourne 404 not found

Répondre

0

Votre fonction des cours est appelé se avant que la connexion est établie db.

Cela devrait faire l'affaire.

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

cela renvoie 404 non trouvé – Burawi