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" }
});
});
問題は、Person (およびその他のすべてのモデル) を外部インクルードに入れたいということです。
私がこのようなことをすると:
require("./models/person.js");
orm.connect() のコールバック関数のコンテキストにのみ存在するため、その中で db 変数を使用することはできません。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
これを行うための明白な方法があるように感じます。