0

Nodejs Express アプリでmysql-ormを使用しています。これは私のコードです。

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: null のプロパティ 'loadMany' を読み取れません

orm変数がコールバックで初期化される前にファイルに渡されるという問題があることはわかっていdb.createますが、これを解決する方法がわかりません。

私は入れようとしました:

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

コールバック内ですが、404 not found を返します

4

1 に答える 1

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);
});
于 2016-03-25T07:29:00.700 に答える