Wie kann “sequelize.import()" importieren Sie Modelle aus einer anderen Datei?
Wenn ich ein neues Modell in der folgenden Weise:
//user.js file
module.exports = function (sequelize, DateTypes) {
return sequelize.define("user", {
email: {
type: DateTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true
}
},
password: {
type: DateTypes.STRING,
allowNull: false,
validate: {
len: [7, 100]
}
}
});
};
und in db.js Datei, wo ich baute eine neue Datenbank:
var Sequelize = require('sequelize');
var env = process.env.NODE_ENV || "development"; //established if you work in production or in development mode
var sequelize;
if (env == "production") {
sequelize = new Sequelize(process.env.DATABASE_URL, {
"dialect": "postgres",
});
} else {
var sequelize = new Sequelize(undefined, undefined, undefined, {
'dialect': 'sqlite',
'storage': __dirname + '/data/dev-todo-api.sqlite' //location where you create a new sqlite database
});
}
var db = {};
db.todo = sequelize.import(__dirname + "/models/todo.js");
db.user = sequelize.import(__dirname + "/models/user.js");
db.sequelize = sequelize; //contain a settings of database
db.Sequelize = Sequelize;
module.exports = db;
Ich verstehe nicht, wie user.js weiß, dass sequelize
(dass ich insert, die als parameter in module.exports
) ist die Instanz einer sequelize Paket, wenn diese sich in einer anderen Datei? Vielleicht, weil mit sequelize.import('/user.js')
es importiert die gesamte sequelize Paket?
- Überprüfen Sie bitte die Schreibweise. In der ersten Zeile, Sie haben zwei Fehler.
- Danke...ich habe meine Lösung mit Ihrer Frage 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe die definition von
sequelize.import
:Effektiv es fordert
require
auf den Pfad und ruft dann das Ergebnis mit der sequelize Beispiel als erstes argument. Dies ist, was verbindet Sie die Knoten so dass das Modul eine Referenz auf die sequelize-Instanz importiert.require(path)(this, DataTypes)
Auftritt.prototype
definierten Methoden auf das Modell außerhalb der Modell-Datei, e.g.in mein controller, ich bekommeModel.prototype.Yourfunction
ist nicht eine Funktion. würden Sie bitte helfen? hier ist eine detaillierte Frage gestellt, wenn Sie weitere Informationen benötigen: stackoverflow.com/questions/51382550/...Hilfreich sein könnten. Das ist, was dieser code sieht aus wie für mich zusammengestellt: