MySQL पर आधारित मॉडल बनाने का कोई सबसे अच्छा तरीका नहीं है। आप मॉडलों को संभालने के अपने तरीके को लागू कर सकते हैं, लेकिन Node.js के लिए कई ORM मॉड्यूल उपलब्ध हैं, मैं उनमें से किसी एक का उपयोग करने का सुझाव दूंगा।
मैं Sequelize का उपयोग करता हूं मॉडल को परिभाषित करने और कई एक्सप्रेस अनुप्रयोगों में डेटाबेस के साथ बातचीत करने के लिए ओआरएम के रूप में। नोड के लिए एक और ओआरएम जिसमें मैंने भाग लिया है वह है Bookshelf.js , लेकिन कई अन्य हैं। किसका उपयोग करना है यह आपकी प्राथमिकताओं और आवश्यकताओं पर निर्भर करता है।
संपादित करें:उपयोग का उदाहरण
Sequelize मॉडल का उपयोग करते समय मैं निम्नलिखित संरचना का सुझाव देता हूं:आपके प्रोजेक्ट में एक निर्देशिका जिसका नाम प्रत्येक मॉडल के लिए एक फ़ाइल के साथ मॉडल और Sequelize वातावरण को लोड करने के लिए एक index.js फ़ाइल है। अगर आप CLI को सीक्वलाइज़ करें का उपयोग करते हैं , इसकी कई विधियाँ भी हैं जो इस संरचना का अनुसरण करती हैं।
index.js
const fs = require("fs");
const path = require("path");
const Sequelize = require("sequelize");
let sqize = new Sequelize({
host : "1.2.3.4",
port : 1234,
database : "testDb",
username : "pino",
password : "[email protected]",
dialect: 'mysql',
});
fs.readdirSync(__dirname).filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
}).forEach(function(file) {
let model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
db.op = Sequelize.Op;
module.exports = {
sqize: sqize,
Sequelize: Sequelize,
op: Sequelize.Op
};
users.js
module.exports = function (sequelize, DataTypes) {
let users = sequelize.define('users', {
username: {
type: DataTypes.STRING(255),
allowNull: true
},
firstname: {
type: DataTypes.STRING(255),
allowNull: true
},
secondname: {
type: DataTypes.STRING(255),
allowNull: true
},
email: {
type: DataTypes.STRING(255),
allowNull: true
},
type: {
type: DataTypes.INTEGER(4),
allowNull: true,
references: {
model: 'users_type',
key: 'id'
}
},
password: {
type: DataTypes.STRING(255),
allowNull: true
},
salt: {
type: DataTypes.STRING(255),
allowNull: true
}
}, {
tableName: 'users'
});
users.associate = function (models) {
users.belongsTo(models.user_types, {
foreignKey: "type",
as: "userType"
});
users.hasMany(models.user_logs, {
foreignKey: "user_id",
as: "userLogs"
});
};
return users;
};
अधिक पैरामीटर और विवरण के लिए, आप Sequelize doc देख सकते हैं, जो बहुत ही सरल और उदाहरणों और विवरणों से भरा है।
इसके अलावा, मैंने कुछ ECMAScript 6 का उपयोग किया है, इसलिए यदि आपका Node.js का संस्करण उनका समर्थन नहीं करता है, तो इस कोड को बदलें या ट्रांसपाइल करें।