0
我尝试设置与快速4.14.0(ORM 3.1.0/MySQL的)在app.js一个JSON API,我有:访问ORM数据
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var data = require('./model/datamodel');
var api = require('./routes/api');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', api);
module.exports = app;
我用
var express = require('express');
var orm = require('orm');
var app = express();
app.use(orm.express("mysql://onserver:>2hZ[[email protected]/onserver", {
define: function (db, models, next) {
models.person = db.define("person", {
name : String,
surname : String,
});
next();
}
}));
而且api.js为实际的API:用于设置ORM datamodel.js
var express = require('express');
var router = express.Router();
var app = express();
router.get('/', function(req, res, next) {
res.json({ message: 'hoorayDATABASE: undefined! welcome to our api!' });
});
router.route("/main").post(function(req, res) {
console.log("MODELS:", req.models);
// req.models is undefined
// I want to access req.models.person.find(...)
})
module.exports = router;
我打电话localhost:3000/main
,我得到:
机型:未定义
我需要的模型对象来检索数据,但它是不确定的。为什么?
你定义新datamodel.js中的应用程序。您只需在应用程序中执行'var app = express();',并将'app'变量传递给其他模块,以便它们都引用同一个实例。 – Molda
@Molda它的作品。你想写一个答案?我只是做“var app = require('../ app');”而不是“var app = express();”在文件2和3中,并移动“var app = express();”在文件1中有两行,它在数据模型模块之前加载。 – Michael
我会以通常如何完成的例子添加一个答案。 – Molda