我是使用Node.js ORM模块:https://github.com/dresende/node-orm
我可以通过以下方式创建一个模型:
问题在于我想将Person(以及所有其他模型)放在外部包含文件中。
如果我做这样的事情: ```python from myapp.models import Person ``` 那么在包含文件中,我就可以使用Person模型了。
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" }
});
});
问题在于我想将Person(以及所有其他模型)放在外部包含文件中。
如果我做这样的事情: ```python from myapp.models import Person ``` 那么在包含文件中,我就可以使用Person模型了。
require("./models/person.js");
我无法在其中使用db变量,因为它仅存在于orm.connect()的回调函数的上下文中。我也无法将orm.connect移动到require (person.js)中并对模型信息进行module.export,因为在父脚本中,require将会发生,然后模型将不会准备好下一行,因为它不会等待回调。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
我觉得有一种很明显的方法可以做到这一点。