我使用Node.js的ORM模块: https://github.com/dresende/node-orm
我能够通过这样做是为了创建一个模型:
var orm = require("orm");
var db = orm.connect("creds", function (success, db) {
if (!success) {
console.log("Could not connect to database!");
return;
}
var Person = db.define("person", {
"name" : { "type": "string" },
"surname": { "type": "string", "default": "" },
"age" : { "type": "int" }
});
});
问题是,我想放人(和所有其他型号为此事)在外部包括。
如果我做这样的事情:
require("./models/person.js");
我不能使用DB变量里面,因为它只是在回调函数为orm.connect的上下文存在()。 我不能移动orm.connect的要求(person.js),并做模型信息一module.export,因为在父脚本中,需要将发生,那么模型将不会对下一行准备,因为它不是等待回调。 IE
//person.js
// db and orm get defined up here as before
Person = {}; // code from above, with the define and etc.
Module.exports = Person;
//app.js
person = require("./models/person.js");
console.log(person); // returns undefined, connect callback isn't done yet
我觉得有这样做的明显的方式。