我在一个Nodejs应用程序中使用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:无法读取属性'loadMany‘的null
我知道问题在于orm
变量在db.create
回调中初始化之前被传递到文件中,但我不知道如何解决这个问题。
我试着说:
var coursesRoutes = require('./routes/dashboard/courses')(orm);
app.use('/dashboard/courses', coursesRoutes);
在回调内部,但它返回404未找到。
发布于 2016-03-24 23:29:00
在建立db连接之前,将调用您的课程函数。
这应该能起作用。
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);
});
https://stackoverflow.com/questions/36215727
复制